feat(#103): Numéro de dossier – backend
- Colonne numero_dossier (utilisateurs, assistantes_maternelles, parents) - Table numero_dossier_sequence, format AAAA-NNNNNN, séquence par année - Génération à la soumission AM et parent (famille) - Backfill existants (famille = co_parent ou enfants partagés) - API PATCH /users/:id/numero-dossier (gestionnaire/admin) - Garde-fous: max 2 parents/dossier, pas de mélange AM/parent Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user