import type { InferSchema, Selectable } from "@tailor-platform/erp-kit/core";
import type { DB } from "../generated/kysely-tailordb";

export type Schema = InferSchema<DB>;

export type Notification<T extends { Notification: object }> = Selectable<T["Notification"]>;
export type NotificationCategory<T extends { NotificationCategory: object }> = Selectable<
  T["NotificationCategory"]
>;
export type NotificationChannel<T extends { NotificationChannel: object }> = Selectable<
  T["NotificationChannel"]
>;
export type NotificationDeliveryAudit<T extends { NotificationDeliveryAudit: object }> = Selectable<
  T["NotificationDeliveryAudit"]
>;
export type NotificationPreference<T extends { NotificationPreference: object }> = Selectable<
  T["NotificationPreference"]
>;
export type NotificationSubscription<T extends { NotificationSubscription: object }> = Selectable<
  T["NotificationSubscription"]
>;
export type NotificationTemplate<T extends { NotificationTemplate: object }> = Selectable<
  T["NotificationTemplate"]
>;
export type EventCategoryBinding<T extends { EventCategoryBinding: object }> = Selectable<
  T["EventCategoryBinding"]
>;
export type ChannelRoutingBinding<T extends { ChannelRoutingBinding: object }> = Selectable<
  T["ChannelRoutingBinding"]
>;
