

# PtitsPas Ynov - Base de Données

Ce projet contient la **base de données** pour l'application PtitsPas, avec scripts de migration, import de données, documentation et configuration Docker.

---

## Prérequis

- Docker Desktop (https://www.docker.com/products/docker-desktop/)
- Docker Compose

---

## Structure du projet

- **`BDD.sql`** : schéma canonique (création from scratch — utilisé par `docker-compose.yml` racine)
- `migrations/` : scripts SQL pour **mettre à jour** une BDD déjà en service
- `bdd/data_test/` : fichiers CSV (import legacy)
- `docs/` : documentation métier et technique (`ENUMS.md`, `FK_POLICIES.md`)
- `seed/` : scripts de seed (`03_seed_test_data.sql` — jeu dashboard admin)
- `tests/` : tests SQL
- `docker-compose.dev.yml` : Postgres standalone (BDD.sql + seed auto)

---

## Lancer la base de données en local

Dans le terminal, depuis le dossier du projet :

```bash
docker compose -f docker-compose.dev.yml up -d
```

Pour arrêter et supprimer les volumes :

```bash
docker compose -f docker-compose.dev.yml down -v
```

---


## Réinitialiser la BDD et charger les données de test (dashboard admin)

Depuis la **racine du projet** (ptitspas-app, où se trouve `docker-compose.yml`) :

```bash
./scripts/reset-and-seed-db.sh
```

Ce script : arrête les conteneurs, supprime le volume Postgres, redémarre la base (le schéma est recréé via `BDD.sql`), puis exécute `database/seed/03_seed_test_data.sql`. Tu obtiens un super_admin (`admin@ptits-pas.fr`) plus 9 comptes de test (1 admin, 1 gestionnaire, 2 AM, 5 parents) avec **mot de passe : `password`**. Idéal pour développer le ticket #92 (dashboard admin).

## Importation automatique des données de test

Les données de test (CSV) sont automatiquement importées dans la base au démarrage du conteneur Docker grâce aux scripts présents dans le dossier `migrations/`.

Il n'est pas nécessaire de lancer manuellement le script d'import.

---

## Accéder à pgAdmin4

### Via Docker (local)

Ouvre ton navigateur sur :

```
http://localhost:8081
```

**Email** : `admin@ptits-pas.fr`
**Mot de passe** : `admin123`

**Mot de passse pour se connecter au server local** : `admin123`


## Conseils et bonnes pratiques

- Vérifie la cohérence des identifiants dans les CSV avant import
- Pour modifier la structure, utilise les scripts de migration dans `migrations/`
- Pour ajouter des scripts d'automatisation, crée un dossier `scripts/`
- Documente les étapes spécifiques dans le README ou dans `docs/`

---

## Contact

Pour toute question ou contribution, consulte la documentation ou contacte l'équipe PtitsPas.

