osm-commerces/docs/import-stats.md
2025-07-05 10:59:37 +02:00

124 lines
No EOL
3.5 KiB
Markdown

# Import d'objets Stats
Cette fonctionnalité permet d'importer des objets Stats à partir d'un fichier JSON via l'interface d'administration.
## Accès
La page d'import est accessible via :
- L'URL : `/admin/import-stats`
- Le menu de navigation : "Import Stats"
## Fonctionnalités
### Sécurité
- **Aucune modification** des objets Stats existants
- Seuls les nouveaux objets sont créés
- Vérification de l'existence par le code INSEE (`zone`)
### Validation
- Vérification du format JSON
- Validation des champs requis (`zone` et `name`)
- Gestion des erreurs par ligne
- Rapport détaillé des résultats
### Champs supportés
#### Champs requis
- `zone` : Code INSEE de la zone (ex: "75056")
- `name` : Nom de la ville/zone (ex: "Paris")
#### Champs optionnels
- `population` : Population de la zone (nombre)
- `budgetAnnuel` : Budget annuel de la collectivité (chaîne)
- `siren` : Code SIREN (nombre)
- `codeEpci` : Code EPCI (nombre)
- `codesPostaux` : Codes postaux séparés par des points-virgules (ex: "75001;75002;75003")
#### Objet `decomptes` (optionnel)
- `placesCount` : Nombre total de lieux
- `avecHoraires` : Nombre de lieux avec horaires
- `avecAdresse` : Nombre de lieux avec adresse
- `avecSite` : Nombre de lieux avec site web
- `avecAccessibilite` : Nombre de lieux avec accessibilité
- `avecNote` : Nombre de lieux avec note
- `completionPercent` : Pourcentage de complétion
## Format JSON attendu
```json
[
{
"zone": "75056",
"name": "Paris",
"population": 2161000,
"budgetAnnuel": "8500000000",
"siren": 200054781,
"codeEpci": 200054781,
"codesPostaux": "75001;75002;75003",
"decomptes": {
"placesCount": 1250,
"avecHoraires": 980,
"avecAdresse": 1200,
"avecSite": 850,
"avecAccessibilite": 450,
"avecNote": 320,
"completionPercent": 75
}
}
]
```
## Utilisation
1. **Préparer le fichier JSON**
- Créer un tableau d'objets Stats
- Inclure au minimum les champs `zone` et `name`
- Valider le format JSON
2. **Accéder à la page d'import**
- Aller sur `/admin/import-stats`
- Ou cliquer sur "Import Stats" dans le menu
3. **Importer le fichier**
- Sélectionner le fichier JSON
- Cliquer sur "Importer"
- Vérifier les messages de résultat
4. **Vérifier les résultats**
- Nombre d'objets créés
- Nombre d'objets ignorés (déjà existants)
- Liste des erreurs éventuelles
## Messages de retour
### Succès
```
Import terminé : X objet(s) créé(s), Y objet(s) ignoré(s) (déjà existants).
```
### Erreurs possibles
- "Aucun fichier JSON n'a été fourni."
- "Le fichier doit être au format JSON."
- "Erreur lors du décodage JSON: [message]"
- "Le fichier JSON doit contenir un tableau d'objets Stats."
- "Ligne X: Champs 'zone' et 'name' requis"
- "Ligne X: [message d'erreur spécifique]"
## Logs
Toutes les actions d'import sont loggées via le service `ActionLogger` :
- `admin/import_stats` : Accès à la page
- `admin/import_stats_success` : Import réussi avec statistiques
- `admin/import_stats_error` : Erreur lors de l'import
## Exemple de fichier de test
Un fichier `test_import_stats.json` est fourni avec des exemples pour Paris, Lyon et Marseille.
## Notes importantes
- Les objets existants ne sont jamais modifiés
- Seuls les nouveaux objets sont créés
- Les dates de création et modification sont automatiquement définies
- Les erreurs sont affichées par ligne pour faciliter le débogage
- Le système est conçu pour être sûr et non destructif