
# ENUMS.md — Référentiel des valeurs énumérées (Sprint 1)

Ce document recense **toutes les valeurs énumérées** utilisées dans la base P’titsPas, leur **sens fonctionnel**, les **colonnes concernées** et les **transitions** attendues côté métier / API.

> Objectif : garantir la **cohérence** entre la DB, le backend (NestJS) et le frontend (Flutter).  
> Toute nouvelle valeur ou renommage **doit** être ajouté ici **avant** migration DB.

---

## Conventions générales

- Les valeurs ENUM sont **en minuscules** et **sans espace** (snake_case si nécessaire).  
- Côté DB, elles sont implémentées via **types ENUM PostgreSQL** *ou* via `CHECK` (selon ce qui est en place dans `01_init.sql`).  
- Côté API, ces valeurs sont **renvoyées telles quelles** et **documentées** dans l’OpenAPI / DTO.

---

## 1) Rôle utilisateur — `role`

**Tables/colonnes** : `utilisateurs.role`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `super_admin` | Compte technique initial / administration globale |
| `gestionnaire` | Gestion / validation des comptes, supervision |
| `parent` | Parent ou co-parent |
| `am` | Assistante maternelle |

---

## 2) Statut utilisateur — `statut`

**Tables/colonnes** : `utilisateurs.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `en_attente` | Compte créé mais non validé |
| `accepte` | Compte validé et actif |
| `rejete` | Demande refusée (peut être recréée ultérieurement) |

---

## 3) Statut enfant — `statut`

**Tables/colonnes** : `enfants.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `a_naitre` | Enfant à naître (date prévue renseignée) |
| `actif` | Enfant pris en charge / en cours de garde |
| `scolarise` | Enfant scolarisé, garde potentiellement périscolaire |

**Contraintes associées** :  
- `a_naitre` → **`date_prevue_naissance` obligatoire**  
- `actif`/`scolarise` → **`date_naissance` obligatoire**

---

## 4) Statut dossier — `statut`

**Tables/colonnes** : `dossiers.statut`  
**Valeurs autorisées (MVP)** :

| Valeur | Description |
|---|---|
| `envoye` | Dossier soumis par le parent (état initial) |
| `en_cours` | Échanges en cours entre parent et AM |
| `clos` | Dossier clôturé (contrat généré ou abandon) |

---

## 5) Statut contrat — `statut`

**Tables/colonnes** : `contrats.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `brouillon` | Contrat en préparation |
| `valide` | Contrat finalisé (signatures complètes) |
| `archive` | Contrat obsolète / terminé |

---

## 6) Statut avenant — `statut`

**Tables/colonnes** : `avenants_contrats.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `propose` | Avenant proposé (en attente d’accord) |
| `valide` | Avenant accepté et appliqué |
| `rejete` | Avenant refusé |

---

## 7) Type d’événement — `type`

**Tables/colonnes** : `evenements.type`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `absence_enfant` | Enfant absent |
| `conge_am` | Congé de l’assistante maternelle |
| `conge_parent` | Congé du parent |
| `arret_maladie_am` | Arrêt maladie AM |
| `evenement_rpe` | Événement RPE |

---

## 8) Statut d’événement — `statut`

**Tables/colonnes** : `evenements.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `propose` | Événement proposé |
| `valide` | Événement validé |
| `rejete` | Événement refusé |

---

## 9) Statut de validation compte — `statut`

**Tables/colonnes** : `validations.statut`  
**Valeurs autorisées** :

| Valeur | Description |
|---|---|
| `accepte` | Compte validé |
| `rejete` | Compte refusé |

---

## 10) Type de notification — `type`

**Tables/colonnes** : `notifications.type`  
**Valeurs proposées** :

| Valeur | Description |
|---|---|
| `nouveau_message` | Nouveau message sur un dossier |
| `validation_compte` | Résultat de la validation de compte |
| `maj_contrat` | Contrat mis à jour (avenant / signature) |
| `evenement_a_venir` | Rappel d’un événement proche |

---

**Mainteneur** : Équipe BDD  
**Dernière mise à jour** : Sprint 1 — Ticket 9 (ENUMS)
