> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eat-now.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue Planning

> Visualisez et orchestrez votre journée comme une timeline. Déplacez les réservations en glissant, changez les statuts d'un tap, repérez les pics et les conflits en un coup d'œil.

La vue **Planning** affiche votre journée sous forme de timeline horizontale — chaque ligne est une table, chaque bloc est une réservation. C'est la vue idéale pour **piloter le service en temps réel** : voir qui arrive, qui est installé, où vous avez de la marge, et déplacer rapidement les résas.

<Frame>
  <img src="https://mintcdn.com/eatnow/wAsoOCHDLuvYw-Iz/images/screenshots/01-planning-global.png?fit=max&auto=format&n=wAsoOCHDLuvYw-Iz&q=85&s=37d7a2704e6c52a6428fb5f5c85d661f" alt="Vue d'ensemble du Planning" width="2938" height="1416" data-path="images/screenshots/01-planning-global.png" />
</Frame>

***

## Quand utiliser cette vue

EatNow propose trois vues sur vos réservations. Chacune a son rôle :

| Vue               | Idéal pour                                                            |
| ----------------- | --------------------------------------------------------------------- |
| **Plan de salle** | Voir la disposition spatiale, placer les arrivants                    |
| **Liste**         | Trier, filtrer, passer en revue, exporter                             |
| **Planning**      | Orchestrer le service, repérer les pics, déplacer une résa rapidement |

Vous basculez entre les trois via les **trois icônes en haut à droite** de la page Réservations.

***

## Anatomie de l'écran

De haut en bas :

1. **Header** — sélecteur de date, filtres (services, statuts, salles), recherche, bouton "Bloquer" et "Rafraîchir".
2. **Barre des heures** — reste collée en haut quand vous scrollez. Au survol, une **infobulle bleue** affiche l'heure exacte du curseur **+ le nombre de résas et de couverts** à ce moment-là (ex : `20:30 — 30 résas · 151 pers`).
3. **Barre des services** orange — indique les plages de chaque service (ex : Dîner 19h-23h).
4. **Lane "Non-assignées"** — sous fond jaune clair avec un badge orange du nombre de résas sans table. Voir [plus bas](#lane-non-assignées).
5. **Salles** (`Main Room`, `Mezzanine`, `Terrasse`...) — repliables. Chaque salle contient ses tables.
6. **Lignes de tables** — une ligne par table. Le numéro et la capacité (`1 - 4`) sont à gauche.
7. **Blocs réservation** — colorés selon le statut. Largeur = durée prévue.
8. **Ligne rouge verticale** — l'heure actuelle (`now`).

***

## Lecture d'un bloc

Chaque bloc affiche les infos clés en un coup d'œil :

* **Couleur** = statut (gris = confirmé, bleu = installé, vert = arrivé, etc.).
* **Nom du client**.
* **Icône fourchette + nombre** = nombre de couverts.
* **🔒 Cadenas** (si visible) = la table est verrouillée pour cette résa, l'auto-assignation ne la touchera pas. Voir [Table définitive](#table-définitive).
* **⚠ En retard** (en rouge clignotant) = la résa devrait déjà être arrivée, mais le statut est encore "Confirmé".

***

## Tap rapide → menu d'actions

**Cliquez** (ou tapez sur mobile) sur un bloc pour ouvrir un menu d'actions rapides.

<Frame>
  <img src="https://mintcdn.com/eatnow/wAsoOCHDLuvYw-Iz/images/screenshots/02-planning-actions.png?fit=max&auto=format&n=wAsoOCHDLuvYw-Iz&q=85&s=98f78062402aa4444bd4038081cab166" alt="Menu d'actions rapides au tap" width="2938" height="1416" data-path="images/screenshots/02-planning-actions.png" />
</Frame>

Ce menu vous montre :

* **Le statut courant** (badge en haut à droite — ici `Confirmé`).
* **Les transitions de statut possibles** depuis l'état actuel — pas tous les statuts s'affichent, juste ceux qui ont du sens. Par exemple :
  * Depuis "Confirmé" : Arrivé, Installé, Pour boissons, No-show.
  * Depuis "Arrivé" : Installé, Terminé.
  * Depuis "Installé" : Terminé.
  * Une fois "Terminé" / "Annulé" : aucun bouton (état final).
* **Toggle "Table définitive"** — si l'auto-assignation est activée pour votre restaurant.
* **Voir les détails** — ouvre la fiche complète de la réservation.
* **Désassigner** — retire la résa de la table (elle retourne dans la lane "Non-assignées").

<Note>
  Un tap fait UNE chose : ouvre ce menu. Pour déplacer la résa (drag & drop), faites un **long-press** — voir [Déplacer une réservation](#déplacer-une-réservation).
</Note>

***

## Clic droit (desktop) → menu contextuel

Sur **desktop**, vous pouvez aussi faire un **clic droit** sur un bloc pour ouvrir un menu contextuel plus complet. Il propose les mêmes changements de statut, plus :

* **Voir le détail** / **Voir la fiche client**.
* **Annuler la réservation** (avec choix de remboursement si paiement).
* **Tout rembourser** (si paiements existants).
* **Capture / Skip** d'une pré-autorisation lors d'un No-show.

Sur **mobile**, le clic droit n'existe pas. Toutes les actions critiques sont accessibles via le menu d'actions rapides + le bouton "Voir les détails".

***

## Table définitive

Quand l'auto-assignation est activée pour votre restaurant, EatNow réorganise les résas sur les tables pour optimiser le service. Le **🔒 cadenas** indique qu'une résa est **verrouillée sur sa table** : l'auto-assignation ne la touchera pas.

### Comment verrouiller une table

* **Manuellement** depuis le menu d'actions rapides → toggle **"Table définitive"**.
* **Automatiquement** quand vous déplacez une résa par drag & drop. Le geste de déplacement explicite vaut décision : la résa est immédiatement marquée comme définitive et le 🔒 apparaît.

Pour libérer la résa (la rendre à nouveau "flottante"), désactivez le toggle dans le menu d'actions.

***

## Déplacer une réservation

Le drag & drop est la grosse force du Planning. Vous pouvez en un seul geste **changer la table** (mouvement vertical) **et l'heure** (mouvement horizontal).

<Frame>
  <img src="https://mintcdn.com/eatnow/wAsoOCHDLuvYw-Iz/images/screenshots/03-planning-drag.png?fit=max&auto=format&n=wAsoOCHDLuvYw-Iz&q=85&s=8ca31220c4d60be7310d02c95b636a4d" alt="Drag & drop d'une réservation en cours" width="2940" height="1420" data-path="images/screenshots/03-planning-drag.png" />
</Frame>

### Le geste

1. **Long-press** sur un bloc (\~350ms — vous verrez le bloc se rétrécir légèrement, c'est le signal).
2. Sur mobile, vous sentez une petite **vibration** — le drag est armé.
3. **Glissez le doigt / la souris** vers la nouvelle position. Vous verrez :
   * Un **ghost noir** flottant qui suit votre pointeur (rappel de quelle résa vous tenez).
   * Un **cadre dashed bleu** sur la ligne cible montrant exactement où la résa va atterrir (table + heure).
   * Le bloc d'origine reste en place mais grisé, comme "ancre" du déplacement.
4. **Relâchez** — la résa atterrit à la nouvelle position. Le 🔒 apparaît automatiquement.

### Snap aux 15 minutes

L'heure cible est automatiquement alignée sur les **slots de 15 minutes**. Pas besoin de viser pixel-parfait.

### Auto-scroll aux bords

Si la destination est en dehors de l'écran (ex : vous voulez déplacer une résa de 16h vers 22h, et 22h n'est pas visible), continuez simplement votre geste vers le bord. Le grid **scrolle automatiquement** dans cette direction. Pareil pour les rooms verticalement.

### Tap court vs Long-press

* **Tap court** (release \< 350ms) → ouvre le menu d'actions rapides.
* **Long-press** (≥ 350ms) → entre en mode drag.

Si vous bougez votre doigt **avant** que le drag s'arme (pendant les 350 premières ms), le geste est annulé — vous pouvez retenter.

### Conflits au drop

Si vous déposez une résa sur un slot **déjà occupé** par une autre, EatNow ouvre une modal et vous demande quoi faire :

* **Marquer comme terminée** la résa précédente (libère la table).
* **Placer à la suite** (chain) — vos deux résas vont se suivre sur la même table.
* **Remplacer** — désassigne la résa précédente (elle retourne dans la lane "Non-assignées").
* **Annuler** — rien ne change.

***

## Lane "Non-assignées"

En haut du grid, sous fond jaune, EatNow affiche les **résas qui n'ont pas (encore) de table**. Le badge orange à gauche indique combien il y en a.

### Comment elles arrivent là

* Une résa créée sans assignation manuelle.
* Une résa désassignée (depuis le menu d'actions ou ailleurs).
* Une résa que l'auto-assignation n'a pas réussi à placer (par manque de tables compatibles).

### Bouton "Auto-assigner tout"

L'icône ✨ à gauche de la lane lance l'auto-assignation. EatNow tente de placer toutes les résas non-assignées en respectant la capacité, les contraintes de salle et les heures. Les résas verrouillées (🔒) ne sont pas touchées.

### Drag & drop depuis la lane

Vous pouvez aussi **glisser une résa de la lane vers une table** : même geste que pour un bloc normal. La résa quitte la lane et atterrit sur la table cible.

***

## Subtilités

### Plusieurs résas au même créneau

Quand **2+ résas** ont exactement la **même heure et la même durée sur la même table** (ou empilées dans la lane), EatNow les fusionne en un seul bloc gris foncé `2 résas`. Cliquez dessus pour ouvrir une fenêtre listant chaque résa individuellement.

<Frame>
  <img src="https://mintcdn.com/eatnow/wAsoOCHDLuvYw-Iz/images/screenshots/04-planning-stack.png?fit=max&auto=format&n=wAsoOCHDLuvYw-Iz&q=85&s=17de514c93047e8dce3cbb549d8770b4" alt="Bloc empilé montrant deux réservations au même créneau" width="2940" height="1414" data-path="images/screenshots/04-planning-stack.png" />
</Frame>

### Conflits visibles

Si deux résas se chevauchent sur **la même table** (sans être empilées exactement), la zone de conflit affiche un motif **rayé rouge en diagonale**. C'est un signal pour vous que vous avez un problème à résoudre : déplacer l'une, marquer l'une comme terminée, ou ignorer si c'est volontaire.

### Survol de la barre des heures

Au survol du grid (souris desktop), une **infobulle bleue** suit le curseur et affiche :

* L'**heure exacte** sous le curseur.
* Le **nombre de résas et de couverts attendus** à ce moment-là (toutes salles confondues, hors annulées et no-shows).

Pratique pour repérer rapidement les pics de pression.

### Mobile vs Desktop

| Geste                 | Desktop                | Mobile / Tablette           |
| --------------------- | ---------------------- | --------------------------- |
| Tap court             | Menu d'actions rapides | Menu d'actions rapides      |
| Long-press            | Démarre le drag        | Démarre le drag (vibre)     |
| Clic droit            | Menu contextuel        | *N/A*                       |
| Survol barre d'heures | Infobulle pression     | *N/A* (touch n'a pas hover) |

<Note>
  Sur mobile, **vous ne pouvez pas scroller le grid en commençant votre doigt sur un bloc** — c'est volontaire pour que le drag fonctionne sans conflit. Démarrez votre doigt sur une **case vide** pour scroller normalement.
</Note>

***

## FAQ

**Pourquoi le menu de tap ne propose pas tous les statuts ?**

EatNow filtre les transitions qui ont du sens depuis l'état courant. Si vous avez besoin d'un statut spécifique (ex : forcer un retour de "Terminé" à "Installé"), passez par **Voir les détails** → la fiche complète permet tout.

**Comment annuler une réservation ?**

Sur desktop : clic droit sur le bloc → **Annuler la réservation**. Sur mobile : tap → **Voir les détails** → action d'annulation dans la fiche complète.

**Quel est le rapport entre cette vue et le Plan de salle ?**

Les deux affichent les mêmes données en temps réel — quand vous changez un statut ou déplacez une résa dans le Planning, le Plan de salle est mis à jour instantanément (et inversement). Choisissez la vue qui matche mieux votre tâche.

**Le compteur jaune ("82") en haut à gauche, c'est quoi ?**

C'est le nombre de **résas sans table** pour la journée. Cliquez le bouton ✨ à côté pour lancer l'auto-assignation, ou faites glisser les blocs depuis la lane jusqu'à une table.

**Les pills "44 résas / 19 résas / 19 résas" sous la barre des services, c'est quoi ?**

Ce sont des **groupes de résas non-assignées** au même créneau. Cliquez dessus pour voir la liste.
