# CHANGELOG - Lot 3 - Tableau de bord CRM

## Objectif du lot

Brancher le tableau de bord sur les donnees CRM importees afin de fournir une premiere vue exploitable de la prospection SYNOLUVIA : statistiques, relances, dernieres interactions, repartitions par statut, mode de contact et discipline.

## Fichiers ajoutes

- `tests/Feature/DashboardCrmOverviewTest.php`
- `CHANGELOG_LOT_3.md`

## Fichiers modifies

- `app/Http/Controllers/DashboardController.php`
- `resources/js/Pages/Dashboard.vue`
- `README.md`

## Migrations a executer

Aucune nouvelle migration dans ce lot.

Les migrations des lots 1 et 2 doivent toutefois deja etre executees :

```bash
php artisan migrate
```

## Commandes a lancer - Linux VM

Depuis le dossier du projet :

```bash
cd ~/programme/crm
unzip -o ~/Telechargements/crm_synoluvia_lot_3.zip -d .
php artisan optimize:clear
php artisan test --filter=DashboardCrmOverviewTest
npm run build
```

Si votre dossier Ubuntu est nomme `Téléchargements`, utilisez :

```bash
unzip -o ~/Téléchargements/crm_synoluvia_lot_3.zip -d .
```

Pour lancer l'application en developpement :

Terminal 1 :

```bash
cd ~/programme/crm
npm run dev
```

Terminal 2 :

```bash
cd ~/programme/crm
php artisan serve
```

Puis ouvrir :

```text
http://127.0.0.1:8000/dashboard
```

## Equivalent PowerShell

Depuis le dossier contenant le projet CRM :

```powershell
Expand-Archive -Force .\crm_synoluvia_lot_3.zip -DestinationPath .\crm
cd .\crm
php artisan optimize:clear
php artisan test --filter=DashboardCrmOverviewTest
npm run build
```

## Tests manuels a realiser

1. Se connecter avec le compte admin.
2. Aller sur `/dashboard`.
3. Verifier que le bandeau indique `Lot 3`.
4. Verifier que les cartes statistiques affichent les donnees importees.
5. Verifier que le bloc `Dernier import` affiche la derniere execution reelle si l'import Excel a ete lance sans `--dry-run`.
6. Verifier que les dernieres interactions apparaissent si les interactions Excel ont ete importees.
7. Verifier que les repartitions par statut, mode de contact et discipline s'affichent correctement.
8. Si des prospects ont une `next_follow_up_date`, verifier leur apparition dans `Relances en retard` ou `Relances a venir`.

## Points de vigilance

- Le lot 3 ne cree pas encore la liste cliquable des prospects : les liens detail prospect arriveront au lot 5.
- Si l'import n'a ete lance qu'en `--dry-run`, les compteurs resteront a zero car aucune ecriture en base n'a ete faite.
- Si le fichier Excel actuel ne contient aucune prochaine relance, les blocs de relances afficheront naturellement des listes vides.
- Le tableau de bord ne modifie pas les donnees ; il est uniquement consultatif.
- Les libelles visibles sont en francais, mais les noms techniques restent en anglais.

## Criteres d'acceptation

- `/dashboard` charge sans erreur apres authentification.
- Les statistiques principales sont calculees depuis la table `prospects`.
- Les dernieres interactions sont calculees depuis la table `interactions`.
- Les relances en retard et a venir s'appuient sur `prospects.next_follow_up_date`.
- `php artisan test --filter=DashboardCrmOverviewTest` passe.

## Lot suivant recommande

Lot 4 - Liste prospects : recherche, filtres, tri, pagination, badges de statut, badge formulaire et actions rapides.
