infoalloggi-monorepo/apps/infoalloggi/src/schemas/public/UsersAnagrafica.ts
Marco Pedone 60e4b187bf Refactor: Update Zod schemas and replace custom types with imported schemas across various files
- Replaced custom Zod types with imported schemas in stripe router and user router.
- Updated payment controller to use new enum imports for order types and payment statuses.
- Refactored payment tests to utilize the new enum structure.
- Removed deprecated zod_types file and created new zod_chat_types file for chat-related schemas.
- Adjusted service files to align with the new order type enums and schemas.
- Enhanced the Caratteristiche type definition using Zod for better validation.

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 20:32:19 +02:00

102 lines
No EOL
4.5 KiB
TypeScript

import { usersId, type UsersId } from './Users';
import { usersStorageUserStorageId, type UsersStorageUserStorageId } from './UsersStorage';
import type { ColumnType, Selectable, Insertable, Updateable } from 'kysely';
import { z } from 'zod';
/** Identifier type for public.users_anagrafica */
export type UsersAnagraficaIdanagrafica = string & { __brand: 'public.users_anagrafica' };
/** Represents the table public.users_anagrafica */
export default interface UsersAnagraficaTable {
idanagrafica: ColumnType<UsersAnagraficaIdanagrafica, UsersAnagraficaIdanagrafica | undefined, UsersAnagraficaIdanagrafica>;
userid: ColumnType<UsersId, UsersId, UsersId>;
luogo_nascita: ColumnType<string | null, string | null, string | null>;
data_nascita: ColumnType<Date | null, Date | string | null, Date | string | null>;
nazione_nascita: ColumnType<string | null, string | null, string | null>;
codice_fiscale: ColumnType<string | null, string | null, string | null>;
via_residenza: ColumnType<string | null, string | null, string | null>;
civico_residenza: ColumnType<string | null, string | null, string | null>;
comune_residenza: ColumnType<string | null, string | null, string | null>;
provincia_residenza: ColumnType<string | null, string | null, string | null>;
cap_residenza: ColumnType<string | null, string | null, string | null>;
nazione_residenza: ColumnType<string | null, string | null, string | null>;
sesso: ColumnType<string | null, string | null, string | null>;
doc_personale_fronte_ref: ColumnType<UsersStorageUserStorageId | null, UsersStorageUserStorageId | null, UsersStorageUserStorageId | null>;
doc_personale_retro_ref: ColumnType<UsersStorageUserStorageId | null, UsersStorageUserStorageId | null, UsersStorageUserStorageId | null>;
}
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(),
});