-- Migration #103 : Numéro de dossier (format AAAA-NNNNNN, séquence par année) -- Colonnes sur utilisateurs, assistantes_maternelles, parents. -- Table de séquence par année pour génération unique. BEGIN; -- Table de séquence : une ligne par année, prochain = prochain numéro à attribuer (1..999999) CREATE TABLE IF NOT EXISTS numero_dossier_sequence ( annee INT PRIMARY KEY, prochain INT NOT NULL DEFAULT 1 ); -- Colonne sur utilisateurs (AM et parents : numéro attribué à la soumission) ALTER TABLE utilisateurs ADD COLUMN IF NOT EXISTS numero_dossier VARCHAR(20) NULL; -- Colonne sur assistantes_maternelles (redondant avec users pour accès direct) ALTER TABLE assistantes_maternelles ADD COLUMN IF NOT EXISTS numero_dossier VARCHAR(20) NULL; -- Colonne sur parents (un numéro par famille, même valeur sur les deux lignes si co-parent) ALTER TABLE parents ADD COLUMN IF NOT EXISTS numero_dossier VARCHAR(20) NULL; -- Index pour recherche par numéro CREATE INDEX IF NOT EXISTS idx_utilisateurs_numero_dossier ON utilisateurs(numero_dossier) WHERE numero_dossier IS NOT NULL; CREATE INDEX IF NOT EXISTS idx_assistantes_maternelles_numero_dossier ON assistantes_maternelles(numero_dossier) WHERE numero_dossier IS NOT NULL; CREATE INDEX IF NOT EXISTS idx_parents_numero_dossier ON parents(numero_dossier) WHERE numero_dossier IS NOT NULL; COMMIT;