Issue #75: feat: Complete Meeting Management API (AG assemblées générales)
- State:
CLOSED
- Milestone:
Jalon 2: Conformité Légale Belge 📋
- Labels:
enhancement,phase:vps track:software,priority:critical
- Assignees:
Unassigned
- Created:
2025-11-01
- Updated:
2025-11-17
- URL:
Description
# Issue #001 - Gestion des Assemblées Générales (API complète)
**Priorité**: 🔴 CRITIQUE
**Estimation**: 6-8 heures
**Phase**: VPS MVP (Nov 2025 - Mar 2026)
## 📋 Description
Implémenter la couche Application et Infrastructure pour la gestion complète des assemblées générales. L'entité de domaine `Meeting` et le schéma de base de données existent déjà, mais aucune API n'est exposée.
**Contexte métier**: Les assemblées générales sont une obligation légale pour toute copropriété. Le système doit permettre de planifier, gérer et archiver les AG (ordinaires et extraordinaires).
## 🎯 Objectifs
- [ ] Créer les Use Cases pour les opérations métier sur les meetings
- [ ] Implémenter les handlers HTTP (Actix-web)
- [ ] Exposer les endpoints REST API (10 endpoints)
- [ ] Ajouter les tests E2E + BDD Gherkin
- [ ] Documenter l'API (commentaires OpenAPI-ready)
## 📐 Spécifications Techniques
### Endpoints à implémenter
| Méthode | Endpoint | Description | Auth |
|---------|----------|-------------|------|
| `POST` | `/api/v1/meetings` | Créer une assemblée | Syndic+ |
| `GET` | `/api/v1/meetings` | Lister toutes les assemblées | Owner+ |
| `GET` | `/api/v1/meetings/:id` | Détails d'une assemblée | Owner+ |
| `PUT` | `/api/v1/meetings/:id` | Mettre à jour une assemblée | Syndic+ |
| `DELETE` | `/api/v1/meetings/:id` | Supprimer une assemblée | SuperAdmin |
| `GET` | `/api/v1/buildings/:id/meetings` | Assemblées d'un immeuble | Owner+ |
| `PUT` | `/api/v1/meetings/:id/publish` | Publier l'agenda | Syndic |
| `POST` | `/api/v1/meetings/:id/minutes` | Ajouter un PV | Syndic |
| `GET` | `/api/v1/meetings/:id/minutes` | Récupérer le PV | Owner+ |
| `PUT` | `/api/v1/meetings/:id/close` | Clôturer l'AG | Syndic |
## 🔗 Dépendances
**Bloque**: #019 (Convocations AG), #022 (Conseil Copropriété vote élections)
## 📚 Fichiers à Créer/Modifier
```
backend/src/application/use_cases/meeting_use_cases.rs
backend/src/application/dto/meeting_dto.rs
backend/src/infrastructure/web/handlers/meeting_handlers.rs
backend/tests/e2e_meetings.rs
backend/tests/features/meetings.feature (BDD)
```
## ✅ Critères d'Acceptation
- Toutes les routes retournent les codes HTTP appropriés (200, 201, 404, 403)
- Tests E2E couvrent tous les scénarios (création, modification, suppression, publication, clôture)
- Tests BDD Gherkin pour scénarios métier (AG ordinaire, extraordinaire, vote)
- Validation des permissions (seul Syndic+ peut créer/modifier)
- Audit logs pour toutes les opérations critiques
---
**Voir**: `issues/critical/001-meeting-management-api.md` pour détails complets