-- ================================================================================
-- UNE INTERVENTION PEUT EXISTER SANS SEJOUR
-- ================================================================================
--
-- CE QUE CETTE MIGRATION DEFAIT, ET POURQUOI.
--
-- La migration 018 avait rendu « reservation_id » OBLIGATOIRE. C'etait juste a l'epoque :
-- toutes les interventions naissaient d'un sejour, et un rattachement facultatif aurait
-- laisse croire qu'une intervention pouvait flotter alors que rien ne savait l'afficher.
--
-- CE QUI A CHANGE : l'agenda. On y regarde une semaine, on voit un creneau libre, et l'on
-- veut y poser du travail — un depannage, une visite technique, une intervention hors
-- location. Aucun de ces cas n'a de sejour, et les inventer un pour les faire entrer
-- reviendrait a salir les donnees pour satisfaire une contrainte.
--
-- ================================================================================
-- CE QUI DEPEND DE CE LIEN, ET QUI EST TRAITE AVEC
-- ================================================================================
--
--   LA JOINTURE. InterventionRepository joignait les reservations en INNER — son commentaire
--   disait explicitement « une intervention sans sejour n'existe pas ». Laisser cette ligne
--   aurait fait DISPARAITRE les nouvelles interventions de tous les ecrans, en silence : la
--   requete n'aurait rien signale, elle aurait simplement rendu moins de lignes. Elle passe en
--   LEFT dans le meme mouvement que cette migration.
--
--   LES COLONNES DU SEJOUR — sejour_debut, sejour_fin, origine — deviennent NULL pour ces
--   interventions. Les vues qui les lisent doivent traiter l'absence, et non l'afficher comme
--   une date vide.
--
--   L'UNICITE (reservation_id, type_prestation_id, moment) empechait de demander deux fois la
--   meme prestation au meme moment d'un sejour. MySQL accepte autant de NULL qu'on veut dans
--   un index unique : les interventions sans sejour echappent donc a cette regle, ce qui est
--   exactement ce qu'on veut — deux depannages le meme jour sur le meme bien sont deux
--   interventions legitimes.
--
-- ================================================================================
-- LA CLE ETRANGERE RESTE
-- ================================================================================
--
-- Nullable, mais toujours contrainte : si un identifiant de sejour est renseigne, il doit
-- exister. On ouvre la porte a « pas de sejour », jamais a « un sejour qui n'existe pas ».

ALTER TABLE interventions
    MODIFY COLUMN reservation_id BIGINT UNSIGNED NULL;
