using System.ComponentModel.DataAnnotations;
namespace SchotzIadKmTracker.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;
}