1bdbe7ab5d05eec0582c45fad78935775284a2c9
- clients: token as separate text field (notNull, unique, nanoid) — never PK - accepted_total denormalized on clients — client API never touches quote_items - deliverables.approved_at immutable timestamp (TIMESTAMPTZ) — audit trail - payments: label (Acconto 50% / Saldo 50%), status (da_saldare/inviata/saldato) - comments: polymorphic entity_type+entity_id pattern - service_catalog + quote_items: admin-only, never exposed to client API - Full relations defined for all FK chains - TypeScript types exported: Client, Phase, Task, Deliverable, etc. - ID strategy: text + nanoid() via $defaultFn (cryptographically secure, URL-safe)
Description
ClientHub portale clienti
Languages
TypeScript
98.2%
CSS
1.1%
Dockerfile
0.4%
JavaScript
0.3%