Composables

useBoardEvents

Composable per aggiornamenti realtime via NATS (OQ-004 — in sviluppo).

Panoramica

useBoardEvents gestisce la connessione NATS per ricevere aggiornamenti realtime sulla board. La feature è attualmente in sviluppo (OQ-004) — la connessione NATS è uno stub che verrà completato.

Inizializzazione

import { useBoardEvents } from '@pzeta/vue-kanban'

const events = useBoardEvents(boardId, {
  onSchedaSpostata: () => fasiService.loadFasiData(),
  onSchedaCreata: () => fasiService.loadSchede(),
  onSchedaAggiornata: () => fasiService.loadSchede(),
  onSchedaEliminata: () => fasiService.loadSchede(),
})

Metodi

MetodoDescrizione
connect()Avvia la connessione NATS
disconnect()Chiude la connessione

Attivazione in KanbanFasiBoard

<KanbanFasiBoard
  board-id="crm"
  :current-user-id="userId"
  :enable-realtime="true"
/>

Con enableRealtime: true, KanbanFasiBoard chiama connect() al mount dopo il caricamento iniziale.

Subject NATS

Gli eventi vengono pubblicati sul subject board.events.{idboard} da node-postgrest-sidecar che si mette in ascolto su pg_notify 'board_events'.

BoardEventMessage

interface BoardEventMessage {
  tipo: 'scheda_spostata' | 'scheda_aggiornata' | 'scheda_creata' | 'scheda_eliminata' | 'assegnatario_cambiato'
  idboard: number
  payload: {
    idscheda: number
    idfasecorrente: number
    idfaseorigine?: number       // solo scheda_spostata
    idfasedestinazione?: number  // solo scheda_spostata
    idassegnatario?: number | null  // solo assegnatario_cambiato
    datacambio: string           // ISO 8601
    idutente: number
  }
}

Stato attuale (OQ-004)

  • La struttura dei tipi è completa
  • La connessione WebSocket/NATS è da completare
  • Usare con enableRealtime: false (default) in produzione fino al completamento di OQ-004