inseriti i types e i constraints e aggiunta la via in 02_seed.sql
All checks were successful
Deploy to VPS / build (push) Successful in 14s
Deploy to VPS / deploy (push) Successful in 15s

This commit is contained in:
AV77web 2026-06-22 16:51:56 +02:00
parent de33e61496
commit f46a11d762
3 changed files with 76 additions and 0 deletions

View file

@ -32,6 +32,7 @@ CREATE TABLE IF NOT EXISTS cliente (
ClienteID INT UNSIGNED NOT NULL AUTO_INCREMENT, ClienteID INT UNSIGNED NOT NULL AUTO_INCREMENT,
Nome VARCHAR(100) NOT NULL, Nome VARCHAR(100) NOT NULL,
Cognome VARCHAR(100) NOT NULL, Cognome VARCHAR(100) NOT NULL,
Via VARCHAR(100) NOT NULL,
Comune VARCHAR(100) NOT NULL, Comune VARCHAR(100) NOT NULL,
Provincia VARCHAR(2) NOT NULL, Provincia VARCHAR(2) NOT NULL,
Telefono VARCHAR(30) NOT NULL, Telefono VARCHAR(30) NOT NULL,

35
src/types/index.ts Normal file
View file

@ -0,0 +1,35 @@
import { CONSEGNA_CONSTRAINTS, UTENTE_CONSTRAINTS } from "../validation/constraints.js";
export type Ruolo = (typeof UTENTE_CONSTRAINTS.ruolo.allowedValues)[number];
export type StatoConsegna = (typeof CONSEGNA_CONSTRAINTS.stato.allowedValues)[number];
export interface Utente {
UtenteID: number;
Nome: string;
Cognome: string;
Email: string;
PasswordHash: string;
Ruolo: Ruolo;
}
export interface Cliente {
ClienteID: number;
Nome: string;
Via: string;
Cognome: string;
Comune: string;
Provincia: string;
Telefono: string;
Email: string;
Note: string | null;
}
export interface Consegna {
ConsegnaID: number;
ClienteID: number;
DataRitiro: Date;
DataConsegna: Date;
Stato: StatoConsegna;
ChiaveConsegna: string;
}

View file

@ -0,0 +1,40 @@
//=========================================
// File: constraints.ts
// Vincoli derivati da initdb/01_schema.sql.
// author: "villari.andrea@libero.it"
// version: "1.0.0 2026-06-18"
//=========================================
export const UTENTE_CONSTRAINTS = {
nome: { maxLength: 100, required: true },
cognome: { maxLength: 100, required: true },
email: { maxLength: 255, required: true },
password: { minLength: 8, maxLength: 72, required: true },
ruolo: {allowedValues: ["Operatore", "Amministratore"],
required: true,
}
} as const;
export const CLIENTE_CONSTRAINTS = {
nome: { maxLength: 100, required: true },
cognome: { maxLength: 100, required: true },
via: {maxLength: 100, required: true},
Comune: {maxLength: 100, required: true},
Provincia: {maxLength: 2, required: true},
telefono: { maxLength: 30, required: true },
email: { maxLength: 255, required: true },
note: { required: false },
} as const;
export const CONSEGNA_CONSTRAINTS = {
dataconsegna: { required: true },
dataritiro: {required: true},
stato: {
allowedValues: ["da ritirare", "in consegna", "in giacenza", "in deposito"],
required: true,
},
chiaveConsegna: { maxLength: 8, required: true },
clienteId: { required: true },
} as const;