# CHANGELOG LOT 4 - Liste prospects

## Objectif du lot

Mettre en place la page de liste des prospects, exploitable apres l'import Excel du lot 2, avec recherche, filtres, tri, pagination, badges et actions rapides.

## Fichiers ajoutes

- `app/Http/Controllers/ProspectController.php`
- `app/Http/Requests/ProspectIndexRequest.php`
- `resources/js/Pages/Prospects/Index.vue`
- `tests/Feature/ProspectsIndexTest.php`
- `CHANGELOG_LOT_4.md`

## Fichiers modifies

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

## Migrations a executer

Aucune nouvelle migration dans ce lot.

Le lot 4 utilise les tables deja creees au lot 1 :

- `prospects`
- `interactions`
- `activity_logs`

## Commandes a lancer - Linux VM

Depuis le dossier du projet :

```bash
cd ~/programme/crm
unzip -o ~/Téléchargements/crm_synoluvia_lot_4.zip -d .
php artisan optimize:clear
php artisan test --filter=ProspectsIndexTest
npm run build
```

En developpement, relancer si besoin les serveurs :

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/prospects
```

## Equivalent PowerShell

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

## Tests manuels a realiser

1. Se connecter avec un utilisateur authentifie.
2. Ouvrir `/prospects`.
3. Verifier que le menu lateral contient maintenant un lien actif `Prospects`.
4. Verifier que la liste affiche les prospects importes.
5. Tester la recherche texte sur un nom de prospect, un email, un site web ou une discipline.
6. Tester les filtres : statut, discipline, pays, departement, mode de contact, formulaire et relance en retard.
7. Tester les tris : designation, statut, dernier contact, prochaine relance et date evenement.
8. Verifier que la pagination conserve les filtres dans l'URL.
9. Verifier que les badges de statut et de mode de contact sont lisibles.
10. Verifier que les actions rapides sont visibles mais desactivees, car elles seront activees aux lots 5, 6 et 7.

## Points de vigilance

- Si aucun prospect n'apparait, verifier que l'import reel du lot 2 a bien ete lance sans `--dry-run`.
- Les actions `Voir`, `Modifier` et `Interaction` sont volontairement desactivees dans ce lot.
- Les filtres discipline/departement sont alimentes a partir des valeurs presentes en base, donc ils dependent directement de l'import Excel.
- Les relances en retard peuvent etre absentes si le fichier source ne contient pas de `next_follow_up_date`.
- Le lot ne modifie pas le schema SQL : inutile de lancer une migration, sauf si votre environnement n'est pas deja a jour.
