namespace SIFinance.Modules.Achats.Dtos; public record BudgetRevisionDto(int Id, decimal MontantRevise, string? Commentaire, string RevisePar, DateTime DateRevision); public record BudgetServiceDto( int Id, int ServiceId, string Service, int ExerciceAnnee, decimal MontantInitial, decimal? MontantRevise, List Revisions); // L'exercice n'est pas calendaire : ExerciceAnnee=2026 désigne la période du 01/09/2026 // au 31/08/2027 (cf. BudgetService.cs). Un budget initial est unique par service et par // exercice — la création échoue s'il en existe déjà un (contrainte d'unicité en base). public record CreateBudgetServiceDto(int ServiceId, int ExerciceAnnee, decimal MontantInitial); // Chaque révision est ajoutée à l'historique, jamais écrasée — MontantRevise doit // représenter le nouveau plafond total, pas un delta à ajouter. public record CreateBudgetRevisionDto(decimal MontantRevise, string? Commentaire);