using TrajetKmTracker.Api.Models.Entities; namespace TrajetKmTracker.Api.Repositories; /// /// Accès aux données du Cache_Adresses (table AdresseCache). /// Toutes les correspondances d'adresse s'effectuent sur le texte normalisé /// (voir ). /// public interface IAdresseCacheRepository { /// /// Retourne les entrées dont l'adresse normalisée contient le fragment normalisé fourni, /// triées de la plus récemment utilisée à la plus ancienne, limitées à . /// Task> RechercherAsync( string fragmentNormalise, int limite, CancellationToken cancellationToken = default); /// Retourne l'entrée correspondant exactement à l'adresse normalisée, ou null. Task ObtenirParAdresseNormaliseeAsync( string adresseNormalisee, CancellationToken cancellationToken = default); /// Ajoute une nouvelle entrée au cache. Task AjouterAsync(AdresseCache entree, CancellationToken cancellationToken = default); /// Compte le nombre total d'entrées du cache. Task CompterAsync(CancellationToken cancellationToken = default); /// /// Retourne les entrées les plus anciennes (par DerniereUtilisation croissante), /// limitées à . Utilisé pour l'éviction LRU. /// Task> ObtenirPlusAnciennesAsync( int nombre, CancellationToken cancellationToken = default); /// Supprime les entrées fournies du cache. void Supprimer(IEnumerable entrees); /// Persiste les modifications en attente. Task SauvegarderAsync(CancellationToken cancellationToken = default); }