- 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.
40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace SchotzIadKmTracker.Api.Models.Entities;
|
|
|
|
/// <summary>
|
|
/// Adresse enregistrée dans le Carnet_Adresses, identifiée par une Dénomination unique
|
|
/// et réutilisable par sa Dénomination lors de la saisie/insertion d'un Trajet.
|
|
/// </summary>
|
|
public class AdresseNommee
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>Libellé libre et unique identifiant l'adresse (1 à 100 caractères).</summary>
|
|
[Required, MaxLength(100)]
|
|
public string Denomination { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Forme normalisée de la Dénomination (trim + minuscules + sans accents) servant de clé
|
|
/// d'unicité via l'index unique UX_AdresseNommee_Denomination. Calculée par le backend.
|
|
/// </summary>
|
|
[Required, MaxLength(100)]
|
|
public string DenominationNormalisee { get; set; } = string.Empty;
|
|
|
|
/// <summary>Texte d'adresse résolu via l'autocomplétion BAN (1 à 255 caractères).</summary>
|
|
[Required, MaxLength(255)]
|
|
public string Adresse { get; set; } = string.Empty;
|
|
|
|
/// <summary>Latitude (précision 6 décimales) ; null si le géocodage a échoué.</summary>
|
|
public double? Latitude { get; set; }
|
|
|
|
/// <summary>Longitude (précision 6 décimales) ; null si le géocodage a échoué.</summary>
|
|
public double? Longitude { get; set; }
|
|
|
|
/// <summary>Vrai si les coordonnées ont été obtenues (cache ou BAN) ; faux sinon.</summary>
|
|
public bool GeocodageReussi { get; set; } = false;
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|