# CHANGELOG — Coaster World v1.59.0

## Discussion de sortie
- Nouveau fil de discussion privé directement dans la fiche d'une sortie de groupe.
- Lecture et publication réservées aux participants ayant confirmé leur présence à la sortie.
- Messages texte jusqu'à 1 500 caractères.
- Affichage chronologique des 80 derniers messages avec auteur et heure locale du parc.
- Présentation différenciée des propres messages.
- Interface responsive ordinateur / tablette / smartphone.

## Modération et confidentialité
- Un utilisateur peut supprimer son propre message.
- Le propriétaire du groupe et les administrateurs du groupe participant à la sortie peuvent modérer les messages.
- Suppression douce : le contenu disparaît mais une trace « message supprimé » reste dans le fil.
- Une sortie annulée conserve la discussion en lecture seule.
- Aucun GPS ni position précise n'est ajouté ou partagé.
- Aucun système de messagerie privée globale n'est introduit.

## Sécurité
- Vérification serveur de l'appartenance au groupe.
- Vérification serveur de la participation confirmée à la sortie avant toute publication ou suppression.
- Vérification stricte que le message appartient bien au groupe et à la sortie demandés.
- Validation du contenu et protection CSRF via les formulaires Laravel existants.

## Interface
- Nouveau bloc « Discussion de la sortie » avant les points de rencontre.
- État vide, bulles de discussion, indication privée et formulaire de réponse.
- Thèmes clair/sombre conservés.
- Traductions FR / EN / DE / ES / IT.

## Base de données
- Nouvelle table `group_visit_messages`.
- Migration Laravel : `database/migrations/2026_08_13_001000_create_group_visit_messages_table.php`.
- Alternative phpMyAdmin : `database/migrations/sql/coaster_world_v1.59.0_group_visit_messages.sql`.
