import { usersId, type UsersId } from './Users'; import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely'; import { z } from 'zod'; /** Identifier type for public.emails */ export type EmailsIdEmail = number & { __brand: 'public.emails' }; /** Represents the table public.emails */ export default interface EmailsTable { id_email: ColumnType; user_id: ColumnType; created_at: ColumnType; data: ColumnType; } export type Emails = Selectable; export type NewEmails = Insertable; export type EmailsUpdate = Updateable; export const emailsIdEmail = z.number().transform(value => value as EmailsIdEmail); export const EmailsSchema = z.object({ id_email: emailsIdEmail, user_id: usersId, created_at: z.date(), data: z.unknown(), }); export const NewEmailsSchema = z.object({ id_email: emailsIdEmail.optional(), user_id: usersId, created_at: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional(), data: z.unknown(), }); export const EmailsUpdateSchema = z.object({ id_email: emailsIdEmail.optional(), user_id: usersId.optional(), created_at: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional(), data: z.unknown().optional(), });