-- Un dossier = une famille, N enfants. Ticket #119 évolution.
-- Table: un enregistrement par famille (lien via numero_dossier / id_parent).
CREATE TABLE IF NOT EXISTS dossier_famille (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  numero_dossier VARCHAR(20) NOT NULL,
  id_parent UUID NOT NULL REFERENCES parents(id_utilisateur) ON DELETE CASCADE,
  presentation TEXT,
  type_contrat VARCHAR(50),
  repas BOOLEAN NOT NULL DEFAULT false,
  budget NUMERIC(10,2),
  planning_souhaite JSONB,
  statut statut_dossier_type NOT NULL DEFAULT 'envoye',
  cree_le TIMESTAMPTZ NOT NULL DEFAULT now(),
  modifie_le TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE INDEX IF NOT EXISTS idx_dossier_famille_numero ON dossier_famille(numero_dossier);
CREATE INDEX IF NOT EXISTS idx_dossier_famille_id_parent ON dossier_famille(id_parent);

-- Enfants concernés par ce dossier famille (N par dossier).
CREATE TABLE IF NOT EXISTS dossier_famille_enfants (
  id_dossier_famille UUID NOT NULL REFERENCES dossier_famille(id) ON DELETE CASCADE,
  id_enfant UUID NOT NULL REFERENCES enfants(id) ON DELETE CASCADE,
  PRIMARY KEY (id_dossier_famille, id_enfant)
);

CREATE INDEX IF NOT EXISTS idx_dossier_famille_enfants_enfant ON dossier_famille_enfants(id_enfant);
