# CHANGELOG - Lots 10 et 11

## Objectif

Regrouper les lots 10 et 11 dans un ZIP incrementiel : modeles d'e-mail, pieces jointes/liens simples, parametres admin, consultation des journaux d'activite et premiers renforcements d'acces.

## Fichiers ajoutes

- `app/Http/Controllers/EmailTemplateController.php`
- `app/Http/Controllers/CrmFileController.php`
- `app/Http/Controllers/Admin/SettingController.php`
- `app/Http/Controllers/Admin/ActivityLogController.php`
- `app/Http/Requests/StoreEmailTemplateRequest.php`
- `app/Http/Requests/StoreCrmFileRequest.php`
- `app/Http/Requests/UpdateCrmSettingRequest.php`
- `resources/js/Pages/EmailTemplates/Index.vue`
- `resources/js/Pages/Settings/Index.vue`
- `resources/js/Pages/ActivityLogs/Index.vue`
- `tests/Feature/EmailTemplatesAndFilesTest.php`
- `tests/Feature/AdminSettingsAndLogsTest.php`
- `CHANGELOG_LOT_10_11.md`

## Fichiers modifies

- `routes/web.php`
- `resources/js/Layouts/AuthenticatedLayout.vue`
- `resources/js/Pages/Prospects/Show.vue`
- `app/Http/Controllers/ProspectController.php`
- `README.md`

## Migrations a executer

Aucune nouvelle migration.

Les tables utilisees existent deja depuis le lot 1 :

- `email_templates`
- `crm_files`
- `settings`
- `activity_logs`

## Commandes a lancer

```bash
cd ~/programme/crm
unzip -o ~/Telechargements/crm_synoluvia_lot_10_11.zip -d .
php artisan optimize:clear
php artisan storage:link
php artisan test --filter=EmailTemplatesAndFilesTest
php artisan test --filter=AdminSettingsAndLogsTest
npm run build
```

Si le dossier Ubuntu s'appelle `Téléchargements`, utiliser :

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

## Tests manuels a realiser

1. Aller sur `/modeles-email`.
2. Creer un modele d'e-mail actif.
3. Modifier ce modele.
4. Le supprimer.
5. Ouvrir une fiche prospect.
6. Aller dans l'onglet `Fichiers`.
7. Ajouter une URL externe.
8. Ajouter un fichier local simple.
9. Ouvrir le lien ou le fichier.
10. Desactiver le lien/fichier.
11. Aller sur `/parametres` avec le compte admin.
12. Modifier le pays par defaut ou le nombre de jours d'alerte relance.
13. Aller sur `/activites` et verifier la presence des logs.
14. Tester l'acces `/parametres` avec un utilisateur non admin si disponible.

## Points de vigilance

- Pour ouvrir les fichiers locaux depuis le navigateur, `php artisan storage:link` doit avoir ete execute.
- Le stockage utilise le disque Laravel `public` et le chemin `storage/app/public/crm-files`.
- La suppression des pieces jointes est logique : le champ `is_active` passe a `false`; le fichier physique n'est pas supprime.
- Les parametres et les logs sont proteges cote serveur par le role `admin`.
- Le verrouillage de l'import Excel par parametre est indique dans l'interface, mais le durcissement complet de la commande d'import reste prevu dans la preparation production du lot 12 si necessaire.
