Concetti

Schema Database

Tabelle, viste e funzioni dello schema attivita PostgreSQL.

Panoramica

Lo schema PostgreSQL attivita contiene tutte le entità per la gestione delle attività. Le chiamate PostgREST usano Content-Profile: attivita (configurato automaticamente dal plugin).

Tabelle principali

attivita.attivita           — Attività
attivita.tipoattivita       — Tipi attività configurabili
attivita.attivitaassegnatari — Assegnatari multipli per attività
attivita.attivitapartecipanti — Partecipanti a riunioni
attivita.ricorrenza         — Pattern di ricorrenza
attivita.concatenamentoattivita — Concatenamenti tra tipi

Viste

VistaDatiUsata da
v_attivitaAttività + tipo + assegnatari/partecipanti JSONB + campi calcolatiuseAttivita.fetchAttivita()
v_attivita_riepilogoContatori per entitàAttivitaBadge, fetchRiepilogo()
v_attivita_utenteStatistiche per utenteuseAttivitaDashboard.fetchDashboard()
v_tipoattivitaTipi + concatenamenti JSONBuseTipiAttivita.fetchTipi()
v_attivitaassegnatariAssegnatari con dati attivitàRicerche per utente

Funzioni RPC

FunzioneDescrizione
rpc/pianifica_attivitaCrea attività + assegnatari in una transazione
rpc/completa_attivitaSegna completata, attiva concatenamenti automatici, gestisce ricorrenza
rpc/annulla_attivitaSegna annullata, gestisce ricorrenza
rpc/conta_attivita_utenteContatori badge per utente corrente

Endpoint Fastify (non PostgREST)

EndpointDescrizione
POST /api/attivita/{id}/upload-documentoUpload su MinIO
POST /api/attivita/{id}/richiedi-firmaInvio richiesta firma digitale

Relazioni

tipoattivita (1) ──< attivita (N)
attivita (1) ──< attivitaassegnatari (N)
attivita (1) ──< attivitapartecipanti (N)  — solo tipo riunione
attivita (1) ── ricorrenza (1)             — attività template
attivita (0..1) ──< attivita (N)           — self-ref padre/figlio (concatenamento)
tipoattivita (1) ──< concatenamentoattivita (N)

entitasorgente

Il campo entitasorgente identifica il tipo di oggetto owner dell'attività. È una stringa libera senza FK — il consumer decide la convenzione:

ValoreOggetto
anagraficaCliente/fornitore
contrattoContratto
schedaScheda kanban
leadLead CRM
praticaPratica amministrativa

La combinazione (entitasorgente, identitasorgente) identifica univocamente l'istanza.