using System.ComponentModel.DataAnnotations; namespace TrajetKmTracker.Api.Models.Entities; /// /// 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. /// public class AdresseNommee { public int Id { get; set; } /// Libellé libre et unique identifiant l'adresse (1 à 100 caractères). [Required, MaxLength(100)] public string Denomination { get; set; } = string.Empty; /// /// 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. /// [Required, MaxLength(100)] public string DenominationNormalisee { get; set; } = string.Empty; /// Texte d'adresse résolu via l'autocomplétion BAN (1 à 255 caractères). [Required, MaxLength(255)] public string Adresse { get; set; } = string.Empty; /// Latitude (précision 6 décimales) ; null si le géocodage a échoué. public double? Latitude { get; set; } /// Longitude (précision 6 décimales) ; null si le géocodage a échoué. public double? Longitude { get; set; } /// Vrai si les coordonnées ont été obtenues (cache ou BAN) ; faux sinon. public bool GeocodageReussi { get; set; } = false; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; }