infoalloggi-monorepo/apps/infoalloggi/src/schemas/public/Emails.ts

46 lines
1.3 KiB
TypeScript
Raw Normal View History

import { usersId, type UsersId } from './Users';
import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely';
import { z } from 'zod';
2025-08-04 17:45:44 +02:00
/** Identifier type for public.emails */
export type EmailsIdEmail = number & { __brand: 'public.emails' };
2025-08-04 17:45:44 +02:00
/** Represents the table public.emails */
export default interface EmailsTable {
id_email: ColumnType<EmailsIdEmail, EmailsIdEmail | undefined, EmailsIdEmail>;
2025-08-04 17:45:44 +02:00
user_id: ColumnType<UsersId, UsersId, UsersId>;
2025-08-04 17:45:44 +02:00
created_at: ColumnType<Date, Date | string | undefined, Date | string>;
2025-08-04 17:45:44 +02:00
data: ColumnType<unknown, unknown, unknown>;
2025-08-04 17:45:44 +02:00
}
export type Emails = Selectable<EmailsTable>;
export type NewEmails = Insertable<EmailsTable>;
export type EmailsUpdate = Updateable<EmailsTable>;
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.date().optional(),
data: z.unknown(),
});
export const EmailsUpdateSchema = z.object({
id_email: emailsIdEmail.optional(),
user_id: usersId.optional(),
created_at: z.date().optional(),
data: z.unknown().optional(),
});