Skip to main content

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:

  1. Centralizzare la logica di invio notifiche in tutta l'applicazione
  2. Separare la configurazione dei template dal codice applicativo
  3. Semplificare la creazione di nuove notifiche tramite template
  4. Supportare diversi canali di comunicazione (Email, Push, Database, Pusher)
  5. 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:

  1. Configurazione (template e canali nel database)
  2. Logica di processing (service per sostituzione variabili e mappatura canali)
  3. 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.