# CHANGELOG Lot 12 - Finitions UX et preparation production OVH

## Objectif du lot

Finaliser la preparation production du CRM SYNOLUVIA : documentation OVH, exemple de `.env` production, checklist de controle, page admin de verification et rappels de sauvegarde MySQL.

## Fichiers ajoutes

- `app/Http/Controllers/Admin/ProductionChecklistController.php`
- `resources/js/Pages/Production/Index.vue`
- `docs/DEPLOIEMENT_OVH.md`
- `docs/SAUVEGARDE_MYSQL_OVH.md`
- `docs/CHECKLIST_PRODUCTION.md`
- `.env.production.example`
- `tests/Feature/ProductionChecklistTest.php`
- `CHANGELOG_LOT_12.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.

Par securite avant production :

```bash
php artisan migrate:status
```

## Commandes a lancer en VM Linux

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

## Commandes production OVH indicatives

```bash
cd programme/crm
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

Si le build front est realise sur OVH :

```bash
npm ci
npm run build
```

Sinon, generer `public/build` en VM puis le transferer sur OVH.

## Tests manuels a realiser

- Ouvrir `/production-ovh` avec le compte admin.
- Verifier les chemins `programme/crm` et `programme/crm/public`.
- Verifier les statuts de controle.
- Ouvrir les documents du dossier `docs/`.
- Verifier que le menu lateral contient `Production OVH`.
- Verifier que la page est interdite a un utilisateur non admin.
- Relancer `npm run build`.

## Points de vigilance

- Le sous-domaine OVH doit pointer vers `programme/crm/public` et non vers `programme/crm`.
- Ne pas mettre en production un `.env` local en SQLite.
- `APP_DEBUG` doit etre `false` en production.
- Sauvegarder la base MySQL avant chaque migration.
- Verifier les droits d'ecriture sur `storage` et `bootstrap/cache`.
- Ne pas supprimer les fichiers joints stockes dans `storage/app/public`.
