Liste vs export
Deux niveaux de détail pour les programmes : catalogue léger pour inventaire / sync, export (ou détail) pour le flux complet.
| Endpoint | Rôle | per_page |
|---|---|---|
GET /v1/programs |
Liste légère — tokens + métadonnées + updated_at |
défaut 25, max 100 |
GET /v1/programs/export |
Flux complet paginé (lots, prix, docs, images…) | page + per_page obligatoires (max 25) |
GET /v1/programs/{token} |
Même richesse que l’export, un seul programme | — |
Champs par niveau
« Liste » = GET /v1/programs. « Export » = export ou détail programme.
| Groupe | Champ / bloc | Liste | Export | Note |
|---|---|---|---|---|
| Programme | id |
Oui | Oui | Interne — ne pas utiliser dans les URLs. |
| Programme | token |
Oui | Oui | — |
| Programme | name |
Oui | Oui | — |
| Programme | slug |
Oui | Oui | — |
| Programme | is_active |
Oui | Oui | — |
| Programme | updated_at |
Oui | — | Uniquement sur `GET /v1/programs` (sync). |
| Programme | contrat_type |
— | Oui | — |
| Programme | addresses |
— | Oui | — |
| Programme | fiscalites / prestations / … |
— | Oui | Tous les blocs enrichis. |
| Programme | documents / images |
— | Oui | URLs S3 signées. |
| Programme | lots[] |
— | Oui | Lots complets + annexes. |
| Programme | sale_parameter |
— | Oui | — |
| Lot | (via liste programmes) |
— | — | Pas dans la liste programmes. |
| Lot | token, number, type, state… |
— | Oui | Dans export / détail / `…/lots/{lot}`. |
| Lot | prices / surfaces / documents |
— | Oui | — |
| Application | id, name, slug |
— | Oui | Enveloppe de l’export uniquement. |
| Pagination | meta.* |
Oui | Oui | Liste et export. |
Pagination : chaque réponse liste / export expose
meta.total (nombre total de programmes)
et meta.last_page — continuer tant que current_page < last_page.
Sync incrémentale : query updated_since (ISO 8601) et en-tête If-None-Match
(réponse 304 si rien n’a changé).