# Phase 1A — Socle encyclopédique

Version : 0.1.0

## Périmètre livré

La Phase 1A pose uniquement le modèle canonique de base. Elle ne contient volontairement ni providers externes, ni IA, ni API publique, ni interface d'administration.

### Tables principales

- `parks` : parc/resort et informations géographiques principales, avec hiérarchie parent/enfants possible.
- `park_zones` : zones thématiques, avec imbrication possible via `parent_zone_id`.
- `attractions` : entité commune pour coaster, ride, show et autres attractions.
- `coasters` : extension 1:1 d'une attraction de type coaster, réservée aux caractéristiques techniques coaster.
- `pois` : restaurants, boutiques, services, hôtels ou autres points utiles liés à un parc/une zone.
- `organizations` : entreprises, constructeurs, propriétaires, exploitants ou concepteurs.
- `park_organization` : relation parc ↔ organisation avec rôle et période éventuelle.
- `attraction_organization` : relation attraction ↔ organisation avec rôle et période éventuelle.

## Choix structurants

- Les catégories (`kind`, `type`, `status`, `role`) sont des chaînes indexées plutôt que des ENUM SQL. De nouveaux types pourront être ajoutés sans migration de schéma.
- Un parc peut être rattaché à un parc/resort parent via `parent_park_id`.
- `opened_year`/`closed_year` permettent de conserver une année connue sans inventer un jour précis; `opened_on`/`closed_on` restent disponibles lorsque la date exacte est connue.
- Un coaster est une attraction + une ligne `coasters`; on ne duplique donc pas nom, parc, zone, statut ou coordonnées.
- Les organisations permettent le même mécanisme pour `manufacturer`, `owner`, `operator`, `designer`, etc.
- Les entités principales utilisent les soft deletes afin d'éviter les suppressions accidentelles de données encyclopédiques.
- Les suppressions physiques d'un parc sont bloquées tant que des éléments structurants lui sont liés.
- La provenance, les valeurs fournisseurs, identifiants externes et niveaux de confiance seront introduits en Phase 1B/1C et ne sont pas simulés dans les tables canoniques de Phase 1A.
