Renommage : TrajetKmTracker -> SchotzIadKmTracker (backend, specs, frontend)
- Backend : projets, solution, namespaces et références TrajetKmTracker.Api/.Tests -> SchotzIadKmTracker.Api/.Tests (dossiers, .csproj, .sln, .http, namespaces C#). GUID UserSecretsId préservé. - Specs : dossier .kiro/specs/trajet-km-tracker -> schotziad-km-tracker et mise à jour des références internes (chemins, tags de propriétés). - Frontend : projet Angular trajet-km-tracker -> schotziad-km-tracker (package.json, angular.json, chemin dist, Dockerfile), titre applicatif 'SchotzIAD KM Tracker'. - Docker et scripts (backend/Dockerfile, frontend/Dockerfile, run-dev.sh) mis à jour. - Suppression du fichier résiduel package.json.bak. Backend (solution) et frontend (build production) compilent sans erreur.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
using SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
namespace SchotzIadKmTracker.Api.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Logique métier du barème kilométrique : CRUD des tranches, validation du non-chevauchement
|
||||
/// par (année, puissance fiscale), sélection de tranche et calcul de montant.
|
||||
/// </summary>
|
||||
public interface IBaremeService
|
||||
{
|
||||
/// <summary>Retourne toutes les tranches d'une année (toutes puissances fiscales confondues).</summary>
|
||||
Task<IReadOnlyList<TrancheBaremeDto>> GetBaremeAsync(int annee, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Ajoute une tranche. Rejette l'ajout s'il crée un chevauchement d'intervalle [KmMin, KmMax]
|
||||
/// pour la même (année, puissance fiscale) via <see cref="Exceptions.TranchesBaremeChevauchantesException"/>.
|
||||
/// </summary>
|
||||
Task<TrancheBaremeDto> AddTrancheAsync(SaveTrancheBaremeDto dto, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Met à jour une tranche existante. Rejette la mise à jour si elle crée un chevauchement
|
||||
/// (hors la tranche elle-même) via <see cref="Exceptions.TranchesBaremeChevauchantesException"/>.
|
||||
/// Lève <see cref="Exceptions.TrancheBaremeNotFoundException"/> si la tranche n'existe pas.
|
||||
/// </summary>
|
||||
Task<TrancheBaremeDto> UpdateTrancheAsync(int id, SaveTrancheBaremeDto dto, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Supprime une tranche. Lève <see cref="Exceptions.TrancheBaremeNotFoundException"/> si elle n'existe pas.
|
||||
/// </summary>
|
||||
Task DeleteTrancheAsync(int id, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Sélectionne la tranche dont [KmMin, KmMax] contient <paramref name="totalKm"/> pour la
|
||||
/// (année, puissance fiscale) donnée et calcule le montant `totalKm × Coefficient + Base`
|
||||
/// (Property 24/27). Si aucune tranche n'existe pour cette combinaison, retourne un montant nul
|
||||
/// et un signal « barème non configuré » sans lever d'erreur bloquante (Exigence 13.4).
|
||||
/// </summary>
|
||||
Task<BaremeCalculResult> CalculerMontantAsync(
|
||||
int annee, int puissanceFiscale, decimal totalKm, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Copie toutes les tranches de l'année la plus récente (strictement antérieure à
|
||||
/// <paramref name="anneeCible"/>) qui possède un barème, vers <paramref name="anneeCible"/>.
|
||||
/// Les tranches existantes de l'année cible sont d'abord supprimées (annule et remplace),
|
||||
/// en transaction. Retourne le nombre de tranches copiées. Retourne 0 si aucun barème
|
||||
/// antérieur n'existe (rien n'est modifié).
|
||||
/// </summary>
|
||||
Task<int> CopierDernierBaremeAsync(int anneeCible, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>Retourne les années (triées croissantes) pour lesquelles au moins une tranche de barème existe.</summary>
|
||||
Task<IReadOnlyList<int>> GetAnneesAvecBaremeAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user