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
| Vista | Dati | Usata da |
|---|---|---|
v_attivita | Attività + tipo + assegnatari/partecipanti JSONB + campi calcolati | useAttivita.fetchAttivita() |
v_attivita_riepilogo | Contatori per entità | AttivitaBadge, fetchRiepilogo() |
v_attivita_utente | Statistiche per utente | useAttivitaDashboard.fetchDashboard() |
v_tipoattivita | Tipi + concatenamenti JSONB | useTipiAttivita.fetchTipi() |
v_attivitaassegnatari | Assegnatari con dati attività | Ricerche per utente |
Funzioni RPC
| Funzione | Descrizione |
|---|---|
rpc/pianifica_attivita | Crea attività + assegnatari in una transazione |
rpc/completa_attivita | Segna completata, attiva concatenamenti automatici, gestisce ricorrenza |
rpc/annulla_attivita | Segna annullata, gestisce ricorrenza |
rpc/conta_attivita_utente | Contatori badge per utente corrente |
Endpoint Fastify (non PostgREST)
| Endpoint | Descrizione |
|---|---|
POST /api/attivita/{id}/upload-documento | Upload su MinIO |
POST /api/attivita/{id}/richiedi-firma | Invio 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:
| Valore | Oggetto |
|---|---|
anagrafica | Cliente/fornitore |
contratto | Contratto |
scheda | Scheda kanban |
lead | Lead CRM |
pratica | Pratica amministrativa |
La combinazione (entitasorgente, identitasorgente) identifica univocamente l'istanza.