2026-04-28 17:46:34 +02:00
|
|
|
import { usersId, type UsersId } from './Users';
|
|
|
|
|
import { usersStorageUserStorageId, type UsersStorageUserStorageId } from './UsersStorage';
|
2025-10-21 18:42:03 +02:00
|
|
|
import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely';
|
2026-04-28 17:46:34 +02:00
|
|
|
import { z } from 'zod';
|
2025-08-04 17:45:44 +02:00
|
|
|
|
|
|
|
|
/** Identifier type for public.users_anagrafica */
|
2025-10-21 18:42:03 +02:00
|
|
|
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 {
|
2025-10-21 18:42:03 +02:00
|
|
|
idanagrafica: ColumnType<UsersAnagraficaIdanagrafica, UsersAnagraficaIdanagrafica | undefined, UsersAnagraficaIdanagrafica>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
userid: ColumnType<UsersId, UsersId, UsersId>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
luogo_nascita: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
data_nascita: ColumnType<Date | null, Date | string | null, Date | string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
nazione_nascita: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
codice_fiscale: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
via_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
civico_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
comune_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
provincia_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
cap_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
nazione_residenza: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-10-21 18:42:03 +02:00
|
|
|
sesso: ColumnType<string | null, string | null, string | null>;
|
2025-08-04 17:45:44 +02:00
|
|
|
|
2025-11-10 16:27:15 +01: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>;
|
|
|
|
|
|
2026-04-28 17:46:34 +02:00
|
|
|
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(),
|
2026-04-28 20:32:19 +02:00
|
|
|
data_nascita: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional().nullable(),
|
2026-04-28 17:46:34 +02:00
|
|
|
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(),
|
2026-04-28 20:32:19 +02:00
|
|
|
data_nascita: z.union([z.date(), z.string()]).pipe(z.coerce.date()).optional().nullable(),
|
2026-04-28 17:46:34 +02:00
|
|
|
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(),
|
|
|
|
|
});
|