# Runbook E2E Prod - Copier/Coller (Client + Liner + BO)

Ce runbook est la version operationnelle courte pour executer une recette metier complete en prod.

Reference detaillee:
- `docs/qa/prod-e2e-client-liner-bo-checklist.md`

## 0) Variables a definir

Remplacer ces placeholders dans vos notes de recette:

- `<CLIENT_EMAIL>`
- `<LINER_A_EMAIL>`
- `<LINER_B_EMAIL>`
- `<ADMIN_EMAIL>`
- `<MISSION_ID>`
- `<PAYOUT_ID>`

## 1) Gate infra avant test

Terminal cPanel:

```bash
/home/<CPANEL_USER>/lineupfrance/current/scripts/preflight_cpanel.sh
/home/<CPANEL_USER>/lineupfrance/current/scripts/smoke_web.sh https://lineupfrance.com
```

Attendu:
- `Preflight OK`
- `0 failed`

No-Go immediat si:
- `PATCH/DELETE` reecrits en `GET`
- erreur `500/419`

## 2) Verification des comptes

Faire avant toute mission de test.

### Client

Verifier dans l app client:
- login OK
- un moyen `pay_in` par defaut visible

### Liner A et Liner B

Verifier dans l app liner:
- login OK
- KYC visible et approuve
- statut disponible actif
- RIB / IBAN present

### Admin BO

Verifier dans le BO:
- `/bo/login`
- `/bo/missions`
- `/bo/kyc`
- `/bo/finance`
- `/bo/payouts`

## 3) Mission de recette a creer

Cote client, creer une mission avec:
- adresse precise
- budget non nul
- horaire futur proche

Adresse recommandee pour la verif geoloc:

```text
Gare de Cormeilles-en-Parisis, 95240 Cormeilles-en-Parisis
```

Noter ensuite:
- `<MISSION_ID>`

## 4) Multi-candidature

### Liner A

1. Ouvrir l app liner.
2. Postuler a la mission.

### Liner B

1. Ouvrir l app liner.
2. Postuler a la meme mission.

### Verifications attendues

Cote client:
- `2` candidatures visibles
- deux liners distincts visibles

Cote BO mission detail:
- `2` candidatures `pending`

## 5) Choix d un seul liner

Cote client:

1. Ouvrir `Candidatures`.
2. Accepter `liner A`.

Attendu:
- `liner A` => `accepted`
- `liner B` => `rejected`

No-Go si:
- deux liners restent acceptes
- paiement possible sans choix explicite

## 6) Paiement client

Cote client:

1. Ouvrir `Paiement`.
2. Payer avec le moyen par defaut.

Attendu cote client:
- succes paiement
- mission visible en suivi / en cours

Attendu cote liner A:
- mission visible dans `Mes missions`
- suivi accessible

Attendu cote BO:
- detail mission affiche paiement cree
- statut paiement visible

## 7) Chat client / liner

1. Depuis le client, ouvrir le chat mission.
2. Envoyer un message.
3. Depuis le liner A, repondre.

Attendu:
- messages visibles des deux cotes
- preview `Messages` mise a jour
- badge ou non-lu coherent

## 8) Progression mission liner

Depuis le liner A, enchaîner strictement:

1. `Demarrer la mission`
2. `Arrive sur place`
3. `Dans la file`
4. `Client arrive`
5. `Place transmise`
6. `Mission terminee`

Attendu cote client:
- timeline mise a jour
- suivi coherent a chaque etape

Attendu cote BO:
- detail mission timeline complete
- statut final `completed`

## 9) Preuves mission

Depuis le liner A:

1. Envoyer au moins une preuve.

Attendu:
- client voit `Preuves mission`
- BO voit la preuve sur detail mission
- moderation BO possible

## 10) Wallet et retrait liner

Apres `Mission terminee`:

1. Cote liner, ouvrir `Wallet`.
2. Verifier que le gain est visible.
3. Demander un retrait.

Attendu BO:
- retrait visible dans `payouts` / `finance`
- statut coherent

Noter si besoin:
- `<PAYOUT_ID>`

No-Go si:
- mission terminee sans credit wallet
- retrait impossible avec compte valide

## 11) Geoloc

Sur la mission `Cormeilles-en-Parisis` verifier:
- cote client: point mission correct
- cote liner: distance coherente
- aucun pin parasite dans Paris
- `Partager ma position` ne disparait pas pendant candidature / suivi

## 12) Notifications

Verifier au minimum:

1. Client recoit notif candidature liner.
2. Liner retenu recoit notif selection / paiement.
3. Liner refuse recoit notif rejet.
4. Centres `Notifications` cohérents cote client et liner.

## 13) Verification locale optionnelle avant prod

Si vous voulez revalider rapidement le parcours client contre le BO local avant la recette terrain:

```bash
cd /Users/gsent/Documents/untitled2/apps/client_app
./scripts/e2e_real_client_api.sh
```

Attendu:
- `All tests passed!`

Validation locale unifiee BO + client + liner avant recette terrain:

```bash
cd /Users/gsent/Documents/app
./scripts/local_validation_suite.sh
```

## 14) Trace minimale a conserver

Conserver dans le compte rendu QA:
- mission id
- client email
- liner retenu
- liner refuse
- statut paiement BO
- statut payout BO
- captures si ecart

## 14) Verdict

Go si tout est vrai:
- multi-candidature OK
- un seul liner retenu
- paiement lie au bon liner
- suivi mission synchro client / liner / BO
- preuves visibles
- wallet credite
- retrait possible

No-Go si un de ces points casse:
- REST casse
- geoloc fausse
- paiement KO
- wallet KO
- retrait KO
- detail mission BO incomplet
