Tipi

Tipi Scrittura

Payload per operazioni POST e PATCH sulle entità dello schema fasi.

Panoramica

I tipi di scrittura corrispondono ai payload inviati a PostgREST per creare o modificare entità. Tutti richiedono l'header Content-Profile: fasi.

FaseCreate / FaseUpdate

interface FaseCreate {
  idboard: number
  nome: string
  ordine: number
  colore: string              // hex (es. '#3b82f6')
  finale?: boolean
  iniziale?: boolean
  attiva?: boolean
  wiplimit?: number | null
  giornistallo?: number
  idtemplateemail?: number | null
  idtemplatesms?: number | null
}

interface FaseUpdate {
  nome?: string
  colore?: string
  ordine?: number
  finale?: boolean
  iniziale?: boolean
  attiva?: boolean
  wiplimit?: number | null
  giornistallo?: number
  idtemplateemail?: number | null
  idtemplatesms?: number | null
  dataeliminazione?: string | null  // soft delete
}

BoardCreate / BoardUpdate

interface BoardCreate {
  codboard: string     // identificatore URL-friendly
  nome: string
  descrizione?: string | null
  attiva?: boolean
}

interface BoardUpdate {
  codboard?: string
  nome?: string
  descrizione?: string | null
  attiva?: boolean
  dataeliminazione?: string | null
}

PrioritaCreate / PrioritaUpdate

interface PrioritaCreate {
  idboard: number
  nome: string
  colore: string     // hex senza '#'
  livello: number    // ordine di urgenza (1 = massima)
  ordine: number     // ordine di visualizzazione
}

TagCreate / TagUpdate

interface TagCreate {
  idboard: number
  nome: string
  colore: string     // hex senza '#'
}

BoardCampoCreate / BoardCampoUpdate

interface BoardCampoCreate {
  idboard: number
  nomecampo: string               // chiave in dati_extra
  etichetta: string               // label visualizzata
  tipocampo: TipoCampo            // 'text'|'textarea'|'number'|'date'|'boolean'|'select'
  obbligatorio?: boolean
  opzioni?: BoardCampoOpzione[] | null   // per tipocampo 'select'
  opzioni_url?: string | null            // endpoint dinamico per opzioni
  opzioni_label?: string | null
  opzioni_value?: string | null
  ordine?: number
  attivo?: boolean
}

FaseTeamWrite

interface FaseTeamWrite {
  idfase: number
  idteam: number    // ID gruppo da @pzeta/authorization (GroupView.id)
}

idteam corrisponde a GroupView.id della libreria @pzeta/authorization. Il vincolo è logico, non enforced a DB.

FaseOrdineItem

interface FaseOrdineItem {
  idfase: number
  ordine: number
}

Usato nel payload di riordina_fasi — deve includere tutte le fasi della board.