mirror of
				https://forge.chapril.org/tykayn/osm-commerces
				synced 2025-10-09 17:02:46 +02:00 
			
		
		
		
	
		
			
	
	
		
			124 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
	
		
			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  |