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

40 lines
1.1 KiB
TypeScript
Raw Normal View History

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<ProvincieId, ProvincieId | undefined, ProvincieId>;
nome: ColumnType<string, string, string>;
sigla: ColumnType<string, string, string>;
}
export type Provincie = Selectable<ProvincieTable>;
export type NewProvincie = Insertable<ProvincieTable>;
export type ProvincieUpdate = Updateable<ProvincieTable>;
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(),
});