namespace SchotzIadKmTracker.Api.Models.DTOs; // Barème public record TrancheBaremeDto( int Id, int Annee, int PuissanceFiscale, decimal KmMin, decimal? KmMax, // null = illimité (borne max exclusive : [KmMin, KmMax[) decimal Coefficient, decimal Base ); public record SaveTrancheBaremeDto( int Annee, int PuissanceFiscale, decimal KmMin, decimal? KmMax, // null = illimité (borne max exclusive : [KmMin, KmMax[) decimal Coefficient, decimal Base ); // Montant réglé public record MontantRegleDto( int Annee, int Mois, int VehiculeId, decimal Montant ); // Indication de versement mensuel (informatif) affichée à la saisie public record MontantPrevisionnelDto( int Annee, int Mois, int VehiculeId, decimal TotalAnnuelPartielKm, decimal MontantBaremePlein, // barème plein sur le total partiel decimal MontantPrevisionnel // = 80% (indicatif uniquement) ); // Ligne mensuelle de la synthèse annuelle (aligne sur la synthèse réelle) public record LigneSyntheseMoisDto( int Mois, decimal KmMois, // kilomètres parcourus dans le mois decimal FraisPaye, // Montant_Regle du mois (saisi) decimal FraisReelMensuel // km_du_mois × coefficient de la tranche annuelle ); // Synthèse annuelle de régularisation pour un véhicule (page 1 du rapport) public record RegularisationAnnuelleDto( int Annee, int VehiculeId, string Plaque, int PuissanceFiscale, decimal CoefficientTranche, // coefficient de la tranche annuelle applicable decimal BaseTranche, // base de la tranche annuelle applicable string TrancheLibelle, // ex. "5 001 à 20 000 km — D2" IReadOnlyList Mois, // 12 lignes decimal TotalKmAnnuel, decimal TotalPaye, // somme des Montant_Regle decimal MontantReel, // barème plein : total_km × coef + base decimal Regularisation // MontantReel − TotalPaye );