using TrajetKmTracker.Api.Models.DTOs; namespace TrajetKmTracker.Api.Services; /// /// Gestion du Carnet_Adresses : CRUD des Adresses_Nommées avec normalisation de la Dénomination /// (unicité) et résolution des coordonnées via le Cache_Adresses ou l'API BAN (Exigence 15). /// public interface IAdresseNommeeService { /// /// Liste toutes les Adresses_Nommées du Carnet_Adresses, triées par Dénomination (Exigence 15.1). /// Task> GetAllAsync(CancellationToken cancellationToken = default); /// /// Crée une Adresse_Nommee : vérifie l'unicité de la Dénomination normalisée (15.6/15.7), /// réutilise le Cache_Adresses si l'adresse y est déjà présente (15.10) ou géocode via BAN (15.11), /// persiste avec ou sans coordonnées (15.5/15.12) et met en cache les coordonnées obtenues (15.9). /// /// Dénomination normalisée déjà utilisée (400). Task CreateAsync(SaveAdresseNommeeDto dto, CancellationToken cancellationToken = default); /// /// Modifie une Adresse_Nommee existante. Si le texte d'adresse a changé et n'est pas en cache, /// re-géocode via BAN (15.11). Applique le contrôle d'unicité de la Dénomination (15.7). /// /// Adresse_Nommee introuvable (404). /// Dénomination normalisée déjà utilisée (400). Task UpdateAsync(int id, SaveAdresseNommeeDto dto, CancellationToken cancellationToken = default); /// /// Supprime une Adresse_Nommee du Carnet_Adresses. Les Trajets existants ne sont pas modifiés /// (ils conservent leur texte d'adresse et leurs coordonnées) (Exigence 15.14). /// /// Adresse_Nommee introuvable (404). Task DeleteAsync(int id, CancellationToken cancellationToken = default); }