FEAT: API Vehicles — contrôleur /api/vehicles + recherche par plaque #9

Closed
opened 2026-08-10 21:02:18 +02:00 by nonobis · 0 comments
Owner

🎯 Contexte

La spec prévoit une gestion complète des véhicules (recherche par plaque, association personne). Aucun contrôleur ni entité Vehicle n'existe.

📚 Référence spec (MASTER_SPECIFICATION.md v2.0)

Phase 17 — API Events + Persons + Vehicles :

  • GET /api/vehicles (filtres : search par plaque, page)
  • GET /api/vehicles/{id} (avec historique events, personne associée)
  • PUT /api/vehicles/{id} (associer à une personne)
  • Recherche floue par plaque : index GIN gin_trgm_ops (2.3)
  • Réponse exemple : { id, licensePlate, make, model, color, personId }

🔍 État actuel (vérifié dans le code)

Aucun VehiclesController, aucune entité Vehicle/LicensePlate (voir ticket entités métier). L'enum EventType contient VehicleDetected et LicensePlateDetected mais rien ne les exploite côté API.

🧩 À faire

  • Dépend du ticket « Entités métier manquantes »
  • CQRS : GetVehicles, GetVehicle, UpdateVehicle (associer personne)
  • Contrôleur VehiclesController + site-scope
  • Recherche plaque (ILIKE / pg_trgm)
  • Tests API

🧪 Critères d'acceptation

  • GET /api/vehicles?search=AA-123 retourne le véhicule
  • Association personne → véhicule persistée
  • Site-scope respecté

📁 Fichiers concernés

src/Heimdall.Web/Controllers/VehiclesController.cs (nouveau), src/Heimdall.Application/Vehicles/ (nouveau), tests/

## 🎯 Contexte La spec prévoit une gestion complète des véhicules (recherche par plaque, association personne). Aucun contrôleur ni entité Vehicle n'existe. ## 📚 Référence spec (MASTER_SPECIFICATION.md v2.0) **Phase 17 — API Events + Persons + Vehicles** : - `GET /api/vehicles` (filtres : search par plaque, page) - `GET /api/vehicles/{id}` (avec historique events, personne associée) - `PUT /api/vehicles/{id}` (associer à une personne) - Recherche floue par plaque : index GIN `gin_trgm_ops` (2.3) - Réponse exemple : `{ id, licensePlate, make, model, color, personId }` ## 🔍 État actuel (vérifié dans le code) Aucun `VehiclesController`, aucune entité `Vehicle`/`LicensePlate` (voir ticket entités métier). L'enum `EventType` contient `VehicleDetected` et `LicensePlateDetected` mais rien ne les exploite côté API. ## 🧩 À faire - [ ] Dépend du ticket « Entités métier manquantes » - [ ] CQRS : GetVehicles, GetVehicle, UpdateVehicle (associer personne) - [ ] Contrôleur `VehiclesController` + site-scope - [ ] Recherche plaque (ILIKE / pg_trgm) - [ ] Tests API ## 🧪 Critères d'acceptation - [ ] `GET /api/vehicles?search=AA-123` retourne le véhicule - [ ] Association personne → véhicule persistée - [ ] Site-scope respecté ## 📁 Fichiers concernés src/Heimdall.Web/Controllers/VehiclesController.cs (nouveau), src/Heimdall.Application/Vehicles/ (nouveau), tests/
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#9
No description provided.