import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely'; import { z } from 'zod'; /** Identifier type for public.provincie */ export type ProvincieId = number & { __brand: 'public.provincie' }; /** Represents the table public.provincie */ export default interface ProvincieTable { id: ColumnType; nome: ColumnType; sigla: ColumnType; } export type Provincie = Selectable; export type NewProvincie = Insertable; export type ProvincieUpdate = Updateable; export const provincieId = z.number().transform(value => value as ProvincieId); export const ProvincieSchema = z.object({ id: provincieId, nome: z.string(), sigla: z.string(), }); export const NewProvincieSchema = z.object({ id: provincieId.optional(), nome: z.string(), sigla: z.string(), }); export const ProvincieUpdateSchema = z.object({ id: provincieId.optional(), nome: z.string().optional(), sigla: z.string().optional(), });