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

102 lines
4.5 KiB
TypeScript
Raw Normal View History

import { usersId, type UsersId } from './Users';
import { usersStorageUserStorageId, type UsersStorageUserStorageId } from './UsersStorage';
import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely';
import { z } from 'zod';
2025-08-04 17:45:44 +02:00
/** Identifier type for public.users_anagrafica */
export type UsersAnagraficaIdanagrafica = string & { __brand: 'public.users_anagrafica' };
2025-08-04 17:45:44 +02:00
/** Represents the table public.users_anagrafica */
export default interface UsersAnagraficaTable {
idanagrafica: ColumnType<UsersAnagraficaIdanagrafica, UsersAnagraficaIdanagrafica | undefined, UsersAnagraficaIdanagrafica>;
2025-08-04 17:45:44 +02:00
userid: ColumnType<UsersId, UsersId, UsersId>;
2025-08-04 17:45:44 +02:00
luogo_nascita: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
data_nascita: ColumnType<Date | null, Date | string | null, Date | string | null>;
2025-08-04 17:45:44 +02:00
nazione_nascita: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
codice_fiscale: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
via_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
civico_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
comune_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
provincia_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
cap_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
nazione_residenza: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
sesso: ColumnType<string | null, string | null, string | null>;
2025-08-04 17:45:44 +02:00
doc_personale_fronte_ref: ColumnType<UsersStorageUserStorageId | null, UsersStorageUserStorageId | null, UsersStorageUserStorageId | null>;
doc_personale_retro_ref: ColumnType<UsersStorageUserStorageId | null, UsersStorageUserStorageId | null, UsersStorageUserStorageId | null>;
2025-08-04 17:45:44 +02:00
}
export type UsersAnagrafica = Selectable<UsersAnagraficaTable>;
export type NewUsersAnagrafica = Insertable<UsersAnagraficaTable>;
export type UsersAnagraficaUpdate = Updateable<UsersAnagraficaTable>;
export const usersAnagraficaIdanagrafica = z.uuid().transform(value => value as UsersAnagraficaIdanagrafica);
export const UsersAnagraficaSchema = z.object({
idanagrafica: usersAnagraficaIdanagrafica,
userid: usersId,
luogo_nascita: z.string().nullable(),
data_nascita: z.date().nullable(),
nazione_nascita: z.string().nullable(),
codice_fiscale: z.string().nullable(),
via_residenza: z.string().nullable(),
civico_residenza: z.string().nullable(),
comune_residenza: z.string().nullable(),
provincia_residenza: z.string().nullable(),
cap_residenza: z.string().nullable(),
nazione_residenza: z.string().nullable(),
sesso: z.string().nullable(),
doc_personale_fronte_ref: usersStorageUserStorageId.nullable(),
doc_personale_retro_ref: usersStorageUserStorageId.nullable(),
});
export const NewUsersAnagraficaSchema = z.object({
idanagrafica: usersAnagraficaIdanagrafica.optional(),
userid: usersId,
luogo_nascita: z.string().optional().nullable(),
data_nascita: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional().nullable(),
nazione_nascita: z.string().optional().nullable(),
codice_fiscale: z.string().optional().nullable(),
via_residenza: z.string().optional().nullable(),
civico_residenza: z.string().optional().nullable(),
comune_residenza: z.string().optional().nullable(),
provincia_residenza: z.string().optional().nullable(),
cap_residenza: z.string().optional().nullable(),
nazione_residenza: z.string().optional().nullable(),
sesso: z.string().optional().nullable(),
doc_personale_fronte_ref: usersStorageUserStorageId.optional().nullable(),
doc_personale_retro_ref: usersStorageUserStorageId.optional().nullable(),
});
export const UsersAnagraficaUpdateSchema = z.object({
idanagrafica: usersAnagraficaIdanagrafica.optional(),
userid: usersId.optional(),
luogo_nascita: z.string().optional().nullable(),
data_nascita: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional().nullable(),
nazione_nascita: z.string().optional().nullable(),
codice_fiscale: z.string().optional().nullable(),
via_residenza: z.string().optional().nullable(),
civico_residenza: z.string().optional().nullable(),
comune_residenza: z.string().optional().nullable(),
provincia_residenza: z.string().optional().nullable(),
cap_residenza: z.string().optional().nullable(),
nazione_residenza: z.string().optional().nullable(),
sesso: z.string().optional().nullable(),
doc_personale_fronte_ref: usersStorageUserStorageId.optional().nullable(),
doc_personale_retro_ref: usersStorageUserStorageId.optional().nullable(),
});