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,42 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
// Résultat de recherche BAN (proxied via backend si nécessaire)
|
||||
public record BANAdresseDto(
|
||||
string Label,
|
||||
double Latitude,
|
||||
double Longitude,
|
||||
string Postcode,
|
||||
string City
|
||||
);
|
||||
|
||||
// Suggestion autocomplétion
|
||||
public record AdresseCacheDto(
|
||||
string Adresse,
|
||||
double Latitude,
|
||||
double Longitude
|
||||
);
|
||||
|
||||
// Entrée complète du Cache_Adresses (lookup exact par la création de Trajet)
|
||||
public record AdresseCacheEntreeDto(
|
||||
string Adresse,
|
||||
double Latitude,
|
||||
double Longitude,
|
||||
string? GeometrieJson
|
||||
);
|
||||
|
||||
// Carnet d'adresses — Adresse_Nommee retournée par le backend
|
||||
public record AdresseNommeeDto(
|
||||
int Id,
|
||||
string Denomination,
|
||||
string Adresse,
|
||||
double? Latitude, // null si le géocodage a échoué
|
||||
double? Longitude // null si le géocodage a échoué
|
||||
);
|
||||
|
||||
// Carnet d'adresses — création / mise à jour d'une Adresse_Nommee
|
||||
public record SaveAdresseNommeeDto(
|
||||
string Denomination, // 1 à 100 car., unique après normalisation
|
||||
string Adresse, // 1 à 255 car.
|
||||
double? Latitude, // fournies par le frontend si sélection BAN
|
||||
double? Longitude
|
||||
);
|
||||
@@ -0,0 +1,63 @@
|
||||
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<LigneSyntheseMoisDto> Mois, // 12 lignes
|
||||
decimal TotalKmAnnuel,
|
||||
decimal TotalPaye, // somme des Montant_Regle
|
||||
decimal MontantReel, // barème plein : total_km × coef + base
|
||||
decimal Regularisation // MontantReel − TotalPaye
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
/// <summary>Résultat de la copie du dernier barème vers une année cible.</summary>
|
||||
/// <param name="TranchesCopiees">Nombre de tranches copiées (0 si aucun barème antérieur).</param>
|
||||
public record CopieBaremeResultDto(int TranchesCopiees);
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
// Profil
|
||||
public record ProfilDto(
|
||||
string? Nom,
|
||||
string? Prenom,
|
||||
string? Matricule,
|
||||
string? AdresseDomicile,
|
||||
bool DomicileGeocode
|
||||
);
|
||||
|
||||
public record SaveProfilDto(
|
||||
string? Nom,
|
||||
string? Prenom,
|
||||
string? Matricule, // max 8 car.
|
||||
string AdresseDomicile
|
||||
);
|
||||
|
||||
// État de configuration du profil (onboarding première utilisation)
|
||||
public record EtatProfilDto(
|
||||
bool EstConfigure // true ssi Profil.Nom et Profil.Prenom non vides ET au moins un Vehicule existe
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
/// <summary>Résultat du recalcul en masse des distances des trajets.</summary>
|
||||
/// <param name="TrajetsRecalcules">Nombre de trajets dont la distance a été recalculée.</param>
|
||||
public record RecalculDistancesResultDto(int TrajetsRecalcules);
|
||||
@@ -0,0 +1,25 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
// Résumé mensuel
|
||||
public record ResumeMensuelDto(
|
||||
int Annee,
|
||||
int Mois,
|
||||
IReadOnlyList<TrajetDto> Trajets,
|
||||
decimal TotalKm // somme distances, 2 décimales
|
||||
);
|
||||
|
||||
// Résumé annuel
|
||||
public record ResumeAnnuelDto(
|
||||
int Annee,
|
||||
IReadOnlyList<ResumeMensuelDto> Mois, // toujours 12 éléments
|
||||
decimal TotalKm
|
||||
);
|
||||
|
||||
// Totaux affichés dans le Panneau_Totaux
|
||||
public record TotauxDto(
|
||||
DateOnly Date,
|
||||
int VehiculeId, // véhicule sur lequel portent les totaux
|
||||
decimal TotalJour,
|
||||
decimal TotalMois,
|
||||
decimal TotalAnnuelPartiel
|
||||
);
|
||||
@@ -0,0 +1,64 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
// Création — les coordonnées sont transmises par le Frontend (issues de la sélection BAN)
|
||||
public record CreateTrajetDto(
|
||||
string Date, // JJ/MM/AAAA en entrée
|
||||
string AdresseDepart,
|
||||
double? DepartLatitude, // null si adresse saisie manuellement sans BAN
|
||||
double? DepartLongitude,
|
||||
string AdresseArrivee,
|
||||
double? ArriveeLatitude, // null si adresse saisie manuellement sans BAN
|
||||
double? ArriveeLongitude,
|
||||
string? Commentaire, // optionnel, max 500 car.
|
||||
int? VehiculeId // optionnel ; null → véhicule courant à la date du trajet
|
||||
);
|
||||
|
||||
// Mise à jour
|
||||
public record UpdateTrajetDto(
|
||||
string Date,
|
||||
string AdresseDepart,
|
||||
double? DepartLatitude,
|
||||
double? DepartLongitude,
|
||||
string AdresseArrivee,
|
||||
double? ArriveeLatitude,
|
||||
double? ArriveeLongitude,
|
||||
string? Commentaire,
|
||||
int? VehiculeId // optionnel ; null → véhicule courant à la date du trajet
|
||||
);
|
||||
|
||||
// Réponse trajet
|
||||
public record TrajetDto(
|
||||
int Id,
|
||||
DateOnly Date,
|
||||
string AdresseDepart,
|
||||
string AdresseArrivee,
|
||||
decimal? Distance, // km, 2 décimales ; null si la distance n'a pas pu être calculée (Exigence 2.4)
|
||||
string? Commentaire,
|
||||
decimal Position, // rang dans la journée
|
||||
int VehiculeId,
|
||||
int PuissanceFiscale
|
||||
);
|
||||
|
||||
// Trajet enrichi pour la carte
|
||||
public record TrajetCarteDto(
|
||||
int Id,
|
||||
DateOnly Date,
|
||||
string AdresseDepart,
|
||||
string AdresseArrivee,
|
||||
decimal Distance,
|
||||
double? DepartLatitude,
|
||||
double? DepartLongitude,
|
||||
double? ArriveeLatitude,
|
||||
double? ArriveeLongitude,
|
||||
string? GeometrieJson // GeoJSON LineString ou null
|
||||
);
|
||||
|
||||
// Réordonnancement manuel des trajets d'une journée
|
||||
public record ReordonnerTrajetsDto(
|
||||
IReadOnlyList<TrajetPositionDto> Trajets
|
||||
);
|
||||
|
||||
public record TrajetPositionDto(
|
||||
int Id,
|
||||
decimal Position
|
||||
);
|
||||
@@ -0,0 +1,30 @@
|
||||
namespace SchotzIadKmTracker.Api.Models.DTOs;
|
||||
|
||||
// Véhicules
|
||||
public record VehiculeDto(
|
||||
int Id,
|
||||
string Denomination,
|
||||
string Plaque,
|
||||
int PuissanceFiscale,
|
||||
DateOnly DateEffet
|
||||
);
|
||||
|
||||
public record CreateVehiculeDto(
|
||||
string Denomination,
|
||||
string Plaque,
|
||||
int PuissanceFiscale,
|
||||
string DateEffet // JJ/MM/AAAA, <= date du jour
|
||||
);
|
||||
|
||||
// Réponse à la création d'un véhicule : indique s'il faut proposer une réaffectation
|
||||
public record VehiculeCreeDto(
|
||||
VehiculeDto Vehicule,
|
||||
bool ReaffectationProposee, // true si des trajets >= DateEffet ont une autre puissance fiscale
|
||||
int NombreTrajetsConcernes
|
||||
);
|
||||
|
||||
// Requête de réaffectation
|
||||
public record ReaffectationDto(
|
||||
int VehiculeId, // nouveau véhicule
|
||||
bool Accepter // true = réaffecter les trajets >= DateEffet ; false = ne rien changer
|
||||
);
|
||||
Reference in New Issue
Block a user