# Validation — Coaster World DATA v1.0.0

Date : 1er octobre 2026. Base reconstituée : v0.1.0 puis 23 mises à jour, jusqu’à v0.20.2. Cette livraison devient la nouvelle référence du code DATA. Les archives sources sont intactes.

## Résultats exécutés

| Contrôle | Résultat |
| --- | --- |
| Suite SQLite | 108/108 tests, 573 assertions |
| Suite MariaDB 10.11.14, moteur MySQL Laravel | 108/108 tests, 573 assertions |
| PHP 8.3.6 / Laravel 13.33.0 / PHPUnit 12.5.36 | Application et suites exécutées |
| Syntaxe des fichiers PHP ajoutés ou modifiés, dépendances comprises | 438 fichiers, aucune erreur |
| Formatage du PHP applicatif modifié | 74 fichiers traités par Pint |
| Composer | Manifeste et verrouillage valides en mode strict |
| Installation puis installation répétée | Succès ; comportements de préservation vérifiés par tests |
| Migrations MySQL, compilation des vues et des routes | Succès |
| Sauvegarde MySQL réelle | Dump natif et empreintes vérifiés |
| Restauration isolée SQLite et MySQL | Données métier retrouvées ; cible existante refusée |
| Parcours Chromium | Premier administrateur, création de parc, accès API, job exécuté par le worker database |
| Affichage | 11 pages × 3 largeurs (375/768/1440) × 2 thèmes = 66 contrôles, aucun débordement horizontal |
| Langues | Français, anglais, allemand, espagnol, italien |
| JavaScript navigateur | Aucune erreur détectée dans ces parcours |
| Documentation OpenAPI | 20 routes GET, vérifiées contre les routes Laravel |
| Archive complète extraite dans un nouveau dossier | Installation et génération conditionnelle de clé réussies, vues/routes compilées, aucun utilisateur ni parc prérempli |
| Archives et mise à jour | CRC vérifiés ; v0.20.2 + mise à jour reproduit exactement le code de l’archive complète |

Les fichiers `docs/screenshots/admin-*.png` montrent les contrôles ordinateur/mobile en clair et en sombre. Le détail chiffré figure dans `docs/VALIDATION_v1.0.0.json`.

## Comportements couverts

- [x] Administration, recherche, catalogues, compteurs, traductions et fiches existantes conservés.
- [x] Installation additive, paramètres de fournisseurs et fiches préexistantes conservés, aucun compte par défaut créé.
- [x] Premier compte protégé par origine locale/token, rôles lecteur/éditeur/administrateur et protection du dernier administrateur.
- [x] API privée, hash et révocation des clés, limite de débit, confidentialité du cache, health accessible.
- [x] Collectes en arrière-plan, absence d’appel HTTP dans le formulaire, déduplication, erreurs et relance.
- [x] Live ThemeParks.wiki et Queue-Times : identifiants vérifiés, refus des sources désactivées et des attractions inconnues.
- [x] Mesures périmées, fermeture du parc, horodatage de dernier changement, calendrier manquant et nuit passant minuit.
- [x] Collecte statique et IA sous forme d’observations ; aucune publication canonique automatique de ces propositions.
- [x] Quantités Wikidata contrôlées, unités, provenance et journal de collecte.
- [x] Édition manuelle et suppression d’une traduction cohérentes avec les valeurs canoniques, l’historique et l’API.
- [x] Champs extensibles réservés protégés, liens d’organisation datés, droits nécessaires à la publication des médias.
- [x] Détection d’incohérences/doublons sans modification des fiches.
- [x] Sauvegarde sans `.env` en clair, vérification des empreintes, refus d’archive corrompue, restauration dans une nouvelle base.

Les réponses externes sont simulées et contrôlées dans les tests afin de vérifier les erreurs, les conflits et les cas limites de façon reproductible. Les tests de sauvegarde MySQL utilisent réellement `mariadb-dump` et le client MariaDB. Les tests navigateur utilisent un vrai worker sur la file database.

## À réaliser sur l’ordinateur cible

- [ ] Renseigner les paramètres de sa propre base dans `.env`, conserver l’APP_KEY si l’installation existe.
- [ ] Configurer le domaine Laragon sur `public/`, exécuter `INSTALL_DATA.bat` ou `UPDATE_DATA.bat`, puis `START_DATA.bat`.
- [ ] Vérifier la réception des collectes auprès des sources activées et les identifiants associés à ses parcs.
- [ ] Créer une clé API pour le serveur consommateur et importer/valider les données réelles souhaitées.
- [ ] Si l’IA est souhaitée, renseigner une clé et un modèle compatibles, puis activer l’option.

La validation a été effectuée sous Linux avec PHP et MariaDB. Les scripts batch sont fournis et relus, mais n’ont pas été exécutés sur un Windows/Laragon natif. Aucun appel IA payant n’a été effectué. La disponibilité réseau et les conditions des fournisseurs réels se vérifient sur la machine cible. Le site principal et le mobile ne sont pas modifiés ; ils disposent de l’API documentée pour leur future intégration.

Les archives livrées contiennent le code et les dépendances, sans configuration privée, base utilisateur, comptes de test, logs, caches ni sauvegardes de validation. La mise à jour ne supprime aucun fichier existant, ni aucune donnée métier.
