namespace MaBibli.Shared.Dtos;
///
/// Identité de la personne connectée, telle que fournie par les en-têtes SSOwat de YunoHost.
///
///
/// En développement il n'y a pas de SSOwat : un utilisateur simulé est configuré
/// (Identite:UtilisateurSimule), conformément à CLAUDE.md qui demande de simuler
/// plutôt que de désactiver l'authentification.
///
public record UtilisateurCourant
{
/// YNH_USER. null si l'identité n'a pas pu être déterminée.
public string? Identifiant { get; init; }
/// YNH_USER_EMAIL.
public string? Email { get; init; }
/// YNH_USER_FULLNAME — évite une requête LDAP pour l'affichage.
public string? NomComplet { get; init; }
/// Vrai si l'identité provient de la configuration de développement, pas de SSOwat.
public bool Simule { get; init; }
/// Libellé à afficher, avec repli sur l'identifiant.
public string Affichage =>
NomComplet is { Length: > 0 } ? NomComplet : Identifiant ?? "inconnu";
public static readonly UtilisateurCourant Anonyme = new();
}