# Installation — Coaster World v1.74.2

Base requise : v1.74.1.

## 1. Remplacer les fichiers

Extraire l'archive complète ou le patch v1.74.2 dans :

```text
C:\laragon\www\coaster-world
```

Accepter le remplacement des fichiers existants.

## 2. Base de données

Aucune nouvelle migration n'est ajoutée par la v1.74.2.

La table `park_points_of_interest` de la v1.74.0 doit déjà exister. En cas de doute :

```bat
cd C:\laragon\www\coaster-world
php artisan migrate
```

Ne jamais lancer `migrate:fresh`.

## 3. Vider les caches Laravel

```bat
cd C:\laragon\www\coaster-world
php artisan optimize:clear
```

## 4. Tester sur un seul parc

Exemple Busch Gardens Tampa :

```bat
php artisan cw:map:sync-osm-pois --park=busch-gardens-tampa --force
```

La commande affiche notamment :

- `Zone = osm_area` si la limite exacte du parc a été trouvée ;
- `Zone = attraction_bbox` si Coaster World utilise l'emprise de secours ;
- Reçus ;
- Importés ;
- Créés ;
- Mis à jour ;
- Fusionnés ;
- Ignorés.

Recharge ensuite la carte du parc avec Ctrl + F5.

## 5. Initialisation progressive de plusieurs parcs

Pour respecter le service public Overpass, procéder par lots :

```bat
php artisan cw:map:sync-osm-pois --all --limit=20
```

Les parcs déjà synchronisés récemment sont ignorés automatiquement. Relancer la commande permet donc de continuer progressivement sur les suivants.

## 6. Automatisation

Le scheduler Laravel lance automatiquement :

```text
cw:map:sync-osm-pois --all --limit=20
```

chaque nuit à 04:40. Les POI OSM restent considérés frais pendant 30 jours par défaut.

Le bouton de synchronisation d'un parc dans l'administration complète également ses POI OSM si nécessaire.

## Remarque

ThemeParks.wiki reste la source principale des attractions/coasters et des POI déjà disponibles. OpenStreetMap sert uniquement de source complémentaire cartographique.
