# RenoValid Back Office MVP

Back-office MVP pour administrer les référentiels RenoValid.

## Fonctionnalités couvertes

- Gestion des tarifs et barèmes
- Import/export CSV, XLS et XLSX
- Mise à jour base code postal / commune
- Suivi des simulations, brouillons et projets enregistrés
- Statistiques de saisie terrain
- Structure simple et évolutive

## Stack proposée

- FastAPI pour l’API back-office
- SQLModel pour les modèles et la persistance
- SQLite en local MVP, PostgreSQL ensuite
- Pandas + OpenPyXL pour import/export CSV/XLSX

## Structure cible

```txt
renovalid-backoffice/
  app/
    main.py
    db.py
    models.py
    schemas.py
    seed.py
    routers/
      health.py
      referentials.py
      postal_codes.py
      simulations.py
      stats.py
    services/
      import_export.py
      statistics.py
  data/
    sample_postal_codes.csv
    sample_tariffs.csv
  tests/
    test_health.py
    test_projects.py
  requirements.txt
  config.example.txt
```

## Endpoints MVP

- `GET /health`
- `GET /referentials`
- `POST /referentials`
- `POST /referentials/import`
- `GET /referentials/export?format=csv`
- `GET /referentials/export?format=xlsx`
- `GET /postal-codes`
- `POST /postal-codes`
- `POST /postal-codes/import`
- `GET /postal-codes/export?format=csv`
- `GET /postal-codes/export?format=xlsx`
- `GET /projects`
- `POST /projects`
- `GET /projects/{public_id}`
- `PATCH /projects/{public_id}`
- `POST /stats/field-events`
- `GET /stats/summary`

## Commandes locales

```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m app.seed
uvicorn app.main:app --reload
```

Documentation locale : `http://127.0.0.1:8000/docs`
