Tipi
Attivita e AttivitaView
Tipi principali per le attività — tabella fisica e vista denormalizzata.
Attivita
Mappa 1:1 la tabella attivita.attivita.
interface Attivita {
idattivita: number
idtipoattivita: number
entitasorgente: string
identitasorgente: number
riepilogo: string // max 125 caratteri
nota: string
datascadenza: string // YYYY-MM-DD
orarioinizio: string | null // ISO 8601 timestamp
orariofine: string | null
tuttoilgiorno: boolean
idutente: number // assegnatario principale
stato: 'pianificata' | 'completata' | 'annullata'
datacompletamento: string | null
risultato: string
idevento: number | null // collegamento calendario — senza FK
iddocumento: number | null
idattivitapadre: number | null // concatenamento padre
priorita: 1 | 2 | 3 | 4 // 1=Bassa, 2=Media, 3=Alta, 4=Critica
datacreazione: string
datamodifica: string
}
AttivitaView
Estende Attivita con i dati della vista v_attivita — join con tipo, campi calcolati e aggregati JSONB.
interface AttivitaView extends Attivita {
// Tipo attività (join con tipoattivita)
nometipo: string
codtipoattivita: CodTipoAttivita
icona: string // classe PrimeFont, es. 'pi-phone'
colore: string // nome Tailwind, es. 'blue'
azione: string
// Utente assegnatario principale
nomecompletoutente: string
// Aggregati JSONB
assegnatari: AssegnatarioInfo[]
partecipanti: PartecipanteInfo[]
// Ricorrenza
idricorrenza: number | null
// Campi calcolati dalla vista
statovisivo: 'success' | 'warning' | 'danger' | 'secondary'
giorni_a_scadenza: number // negativo se scaduta
scaduta: boolean
}
StatoVisivo
| Valore | Condizione | Colore tipico |
|---|---|---|
success | stato === 'completata' | Verde |
danger | scaduta === true | Rosso |
warning | Scadenza entro 3 giorni | Arancione |
secondary | stato === 'annullata' | Grigio |
AttivitaRiepilogo
Contatori aggregati per un'entità specifica — dalla vista v_attivita_riepilogo.
interface AttivitaRiepilogo {
entitasorgente: string
identitasorgente: number
in_ritardo: number
oggi: number
futuro: number
completate: number
}
Usato da AttivitaBadge per il rendering dei badge.
TipoAttivita
interface TipoAttivita {
idtipoattivita: number
nome: string
codtipoattivita: CodTipoAttivita
descrizione: string | null
icona: string // classe PrimeFont, es. 'pi-phone'
colore: string // nome colore Tailwind, es. 'blue'
azione: string // 'telefonata' | 'email' | 'riunione' | 'upload_documento' | 'richiesta_firma' | ...
cartella: string | null // raggruppamento per la lista admin
idutentepredefinito: number | null
nomeutentepredefinito: string | null // join read-only via get_user_display
riepilogopredefinito: string | null
notapredefinita: string | null
mantienicompletate: boolean
ordinamento: number
attivo: boolean
concatenamenti: Concatenamento[]
}
CodTipoAttivita
type CodTipoAttivita =
| 'dafare'
| 'email'
| 'telefonata'
| 'riunione'
| 'documento'
| 'firma'
| 'approvazione'
| string // tipi personalizzati definiti via admin