# Suppression groupée de contrats - Page Staff/Contrats

## Résumé des modifications

Cette fonctionnalité permet au staff de supprimer plusieurs contrats en une seule opération depuis la page `/staff/contrats`.

## Fichiers modifiés

### 1. `components/staff/ContractsGrid.tsx`

#### Ajouts :
- **État du modal** : `showDeleteModal` pour contrôler l'affichage du modal de confirmation
- **Bouton dans le menu actions groupées** : Ajout d'une option "Supprimer les contrats" en rouge dans le menu déroulant
- **Modal de confirmation** : `DeleteConfirmModal` - nouveau composant inline qui :
  - Affiche un avertissement en rouge sur l'irréversibilité de l'action
  - Liste les contrats qui seront supprimés
  - Demande à l'utilisateur de taper "supprimer" pour confirmer
  - Appelle l'API `/api/staff/contracts/bulk-delete`
  - Gère les erreurs et affiche des notifications toast

### 2. `app/api/staff/contracts/bulk-delete/route.ts` (nouveau fichier)

Endpoint API POST qui :
- Vérifie l'authentification et les permissions staff
- Valide les IDs de contrats reçus
- Supprime les contrats de la table `cddu_contracts`
- Retourne la liste des IDs supprimés
- Gère les erreurs avec des messages appropriés

## Fonctionnement

1. L'utilisateur sélectionne un ou plusieurs contrats via les checkboxes
2. Clique sur "Action groupée" → "Supprimer les contrats"
3. Un modal s'ouvre avec :
   - Un avertissement en rouge
   - La liste des contrats à supprimer
   - Un champ de confirmation où il faut taper "supprimer"
4. Une fois confirmé, les contrats sont supprimés de la base de données
5. La liste est automatiquement mise à jour et un toast de succès s'affiche
6. La sélection est réinitialisée

## Sécurité

- ✅ Vérification de l'authentification
- ✅ Vérification du statut staff
- ✅ Confirmation explicite requise (taper "supprimer")
- ✅ Avertissement visuel sur l'irréversibilité
- ✅ Séparation visuelle dans le menu (ligne de séparation + couleur rouge)

## UX/UI

- Bouton en rouge pour signaler le danger
- Modal avec fond rouge pour les avertissements
- Champ de confirmation obligatoire
- Toast de succès avec le nombre de contrats supprimés
- Mise à jour immédiate de la liste sans rechargement

## Tests recommandés

1. Tester avec 1 contrat
2. Tester avec plusieurs contrats
3. Tester l'annulation
4. Tester sans taper "supprimer" correctement
5. Vérifier les permissions (utilisateur non-staff)
6. Vérifier que les contrats sont bien supprimés de la BDD
