Introduzione modulo
🚧 BOZZA
Il modulo Notifiche gestisce l'invio di notifiche multi-canale basate su template configurabili.
📌 Panoramica
Il sistema di notifiche permette di:
- Creare template di notifica riutilizzabili
- Configurare canali di invio (Email, Push) per ogni template
- Utilizzare variabili dinamiche nei contenuti
- Inviare notifiche multi-canale in modo centralizzato
- Personalizzare le impostazioni di notifica per utente
🎯 Obiettivi del modulo
Il modulo Notifiche è stato progettato per:
- Centralizzare la logica di invio notifiche in tutta l'applicazione
- Separare la configurazione dei template dal codice applicativo
- Semplificare la creazione di nuove notifiche tramite template
- Supportare diversi canali di comunicazione (Email, Push, Database, Pusher)
- Permettere personalizzazione dei contenuti tramite variabili
🔑 Concetti chiave
Template di notifica
Un template di notifica definisce:
- Il titolo e il tipo della notifica (ToDo, Info)
- Un codice univoco per identificare il template
- I canali abilitati per l'invio
- Un URL di redirect opzionale
Canali di notifica
Ogni template può avere uno o più canali di notifica configurati:
- Email: Invio tramite email con oggetto, corpo e CTA personalizzabili
- Push: Notifica push (salvata nel database e/o inviata via Pusher in real-time)
Variabili
Le variabili sono placeholder dinamici utilizzabili nei template (sintassi: {{nome_variabile}}).
Ogni variabile ha:
- Una categoria che ne determina la provenienza (core, project, customer, company, ecc.)
- Un tipo che definisce il formato del valore (text, email, date, currency, ecc.)
🏗️ Architettura
Il modulo utilizza un'architettura template-based che separa:
- Configurazione (template e canali nel database)
- Logica di processing (service per sostituzione variabili e mappatura canali)
- Implementazione specifica (notification classes per ogni tipo di notifica)
Ogni modulo dell'applicazione può creare le proprie classi di notifica estendendo BaseNotification e utilizzando i template configurati nel database.