Metadata-Version: 2.4
Name: forge-mvc-fixtures
Version: 1.0.0rc4
Summary: Forge Fixtures — opt-in de données de démo et de test rejouables et cadrées par environnement : forge fixtures:load et forge fixtures:purge, CLI-only, SQL visible (ADR-074).
Author: Roger Lequette
License-Expression: LicenseRef-Forge-Proprietary
Project-URL: Homepage, https://github.com/caucrogeGit/Forge
Project-URL: Repository, https://github.com/caucrogeGit/Forge
Project-URL: Documentation, https://forgemvc.com/docs/forge/
Keywords: python,mvc,forge,fixtures,seed,demo,test-data
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: forge-mvc<2,>=1.0.0rc4
Requires-Dist: faker<40,>=30
Dynamic: license-file

# forge-mvc-fixtures

Données de démonstration et de test opt-in pour le framework Forge.

## Statut : Beta — opt-in officiel (scaffold)

`forge-mvc-fixtures` est marqué `Development Status :: 4 - Beta`.
Le paquet est introduit par l'ADR-074.

C'est un **opt-in à CLI seule** : il ajoute les commandes `forge fixtures:load`
et `forge fixtures:purge` une fois installé. Il n'expose **aucune API runtime** ;
une application ne l'importe jamais à l'exécution.

## Pourquoi un opt-in

Peupler une base de données de démonstration ou de test est de l'outillage de
développement, pas du runtime de framework (principe 8, ADR-004).

Ce besoin est distinct de la migration de seed (ADR-074, principe 11) :

- les **données de référence permanentes** (partout, production comprise)
  restent une migration appliquée par `forge migration:apply` ;
- les **données de démo ou de test**, que l'on veut **rejouer** (charger, purger,
  recharger) et **cadrer par environnement** (`dev`, `test`, jamais `prod` par
  défaut), relèvent de cet opt-in.

Le SQL des fixtures reste **visible** : ce sont des fichiers `.sql` relus, pas un
format opaque (principe 5).

## Installation

```bash
pip install --pre forge-mvc-fixtures
```

Pour développer le paquet en mode éditable depuis les sources du dépôt Forge :

```bash
pip install -r requirements-dev.txt  # installe forge-mvc-fixtures depuis packages/
```

## Commandes

| Commande | Rôle |
|---|---|
| `forge fixtures:load` | Charge les fixtures `mvc/fixtures/*.sql` dans la base de l'environnement actif. Affiche le SQL par défaut ; `--run` exécute ; `--run --force` en production. |
| `forge fixtures:purge` | Vide les tables ciblées par les fixtures (dérivées des `INSERT INTO`) pour repartir d'un état propre. Mêmes options `--run` / `--force`. |
| `forge fixtures:make-factory <entity>` | Échafaude une factory depuis le contrat d'entité (providers Faker devinés), sous `mvc/fixtures/factories/`. |
| `forge fixtures:generate <entity>` | Exécute la factory et écrit `mvc/fixtures/<table>.sql` (`--rows N`, `--seed S`, `--force`). |

## Compatibilité

Disponible séparément depuis Forge 1.0.0-rc.2 (ADR-074).
