Entites
Liste complete des entites de Place API avec leurs proprietes et relations
Entites
Module Identity
User
Entite principale representant un utilisateur. Herite de IdentityUser<Guid> (ASP.NET Identity).
Namespace : Identity.EntitiesInterfaces : IVersion, IHasDomainEvents
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant unique (herite de IdentityUser) |
UserName | string | Nom d'utilisateur (herite) |
Email | string | Adresse email (herite) |
NormalizedEmail | string | Email normalise pour les recherches (herite) |
EmailConfirmed | bool | Email confirme (herite) |
PhoneNumber | string? | Numero de telephone (herite) |
PhoneNumberConfirmed | bool | Telephone confirme (herite) |
TwoFactorEnabled | bool | 2FA active (herite) |
LockoutEnabled | bool | Lockout active (herite) |
LockoutEnd | DateTimeOffset? | Fin du lockout (herite) |
AccessFailedCount | int | Nombre de tentatives echouees (herite) |
FirstName | string? | Prenom |
LastName | string? | Nom de famille |
PassPortNumber | string? | Numero de passeport |
IsActive | bool | Compte actif (defaut: true) |
ImageUrl | string? | URL de l'avatar |
LastPasswordChangeDate | DateTime? | Date du dernier changement de mot de passe |
CreatedAt | DateTime | Date de creation (defaut: DateTime.UtcNow) |
LastLoginAt | DateTime? | Date de derniere connexion |
Version | long | Version pour le controle de concurrence optimiste |
Methodes de domaine :
// Methode factory pour l'inscription
public static User Register(string username, string normalizedEmail,
string? firstName, string? lastName, string? imageUrl);
// Enregistre un login et emet UserLoggedInEvent
public void RecordLogin();
// Met a jour la date de changement de mot de passe
public void RecordPasswordChange();
// Active le compte et emet UserActivatedEvent
public void Activate(string? reason);
// Desactive le compte et emet UserDeactivatedEvent
public void Deactivate(string? reason);
// Remplit le profil depuis un provider social (ne remplace pas les valeurs existantes)
public void FillSocialProfile(string? firstName, string? lastName, string? imageUrl);
UserSession
Represente une session active avec gestion de la rotation de tokens et detection de replay.
Namespace : Identity.EntitiesInterface : IHasDomainEvents
| Propriete | Type | Description |
|---|---|---|
Id | SessionId | Identifiant de session (value object) |
UserId | UserId | Utilisateur proprietaire (value object) |
RefreshTokenHash | HashedToken | Hash HMAC-SHA256 du refresh token courant |
PreviousRefreshTokenHash | HashedToken? | Hash du token precedent (window de grace) |
TokenFamilyId | TokenFamilyId | Famille de tokens pour revocation en cascade |
IpAddress | string? | Adresse IP a la creation |
UserAgent | string? | User-Agent a la creation |
DeviceId | string? | Identifiant de l'appareil |
DeviceType | DeviceType? | Type d'appareil (Mobile, Desktop, Tablet, Bot) |
Browser | string? | Navigateur detecte via UAParser |
OperatingSystem | string? | Systeme d'exploitation detecte |
CreatedAt | DateTime | Date de creation |
LastActivityAt | DateTime | Derniere activite (mise a jour a chaque rotation) |
ExpiresAt | DateTime | Date d'expiration de la session |
RevokedAt | DateTime? | Date de revocation (null si active) |
RevocationReason | RevocationReason? | Raison de la revocation |
Methodes internes :
internal static UserSession Create(NewSessionData data, DateTime createdAt);
internal bool Revoke(RevocationReason? reason, DateTime revokedAt);
internal void UpdateActivity(HashedToken newRefreshTokenHash, DateTime now);
Role
Namespace : Identity.EntitiesHerite de : IdentityRole<Guid>, IVersion
| Propriete | Type | Description |
|---|---|---|
Description | string? | Description du role |
Version | long | Version |
OtpRecord
Code OTP a usage unique pour les verifications (email, mot de passe, telephone).
Namespace : Identity.Entities
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant |
UserId | Guid | Utilisateur cible |
CodeHash | string | Hash du code OTP |
TokenFingerprint | string? | Empreinte du token associe |
Purpose | string | Objectif (email_confirm, password_reset, etc.) |
ExpiresAt | DateTime | Date d'expiration |
Attempts | int | Nombre de tentatives de validation |
IsUsed | bool | Code deja consomme |
CreatedAt | DateTime | Date de creation |
TwoFactorChallenge
Challenge temporaire pour l'authentification a deux facteurs.
Namespace : Identity.Entities
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant |
UserId | Guid | Utilisateur |
TokenFingerprint | string | Empreinte du token |
TokenHash | string | Hash du token de challenge |
ExpiresAt | DateTime | Expiration |
Attempts | int | Tentatives |
IsConsumed | bool | Challenge deja utilise |
CreatedAt | DateTime | Date de creation |
Group / GroupRole / UserGroup
Systeme de groupes pour l'attribution collective de roles.
Group :
| Propriete | Type |
|---|---|
Id | Guid |
Name | string |
Description | string? |
CreatedAt | DateTime |
GroupRole (association) :
| Propriete | Type |
|---|---|
GroupId | Guid |
RoleId | Guid |
UserGroup (association) :
| Propriete | Type |
|---|---|
UserId | Guid |
GroupId | Guid |
JoinedAt | DateTime |
PasswordHistory
Historique des mots de passe pour empecher la reutilisation.
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant |
UserId | Guid | Utilisateur |
PasswordHash | string | Hash du mot de passe |
CreatedAt | DateTime | Date d'enregistrement |
PushToken
Token de notification push associe a un appareil.
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant |
UserId | Guid | Utilisateur |
Token | string | Token push |
Platform | string | Plateforme (iOS, Android) |
DeviceId | string? | Identifiant de l'appareil |
CreatedAt | DateTime | Date de creation |
UpdatedAt | DateTime | Derniere mise a jour |
IdempotencyRecord
Enregistrement d'idempotence pour les requetes POST/PUT.
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant |
Key | string | Cle d'idempotence (header client) |
RequestIdentity | string | Identite de la requete |
RequestBodyHash | string | Hash du corps de la requete |
StatusCode | int | Code HTTP de la reponse cachee |
ResponseBody | string | Corps de la reponse en cache |
CreatedAt | DateTime | Date de creation |
ExpiresAt | DateTime | Date d'expiration |
UserClaim / RoleClaim / UserLogin / UserRole
Entites ASP.NET Identity etendues avec IVersion :
- UserClaim (
IdentityUserClaim<Guid>) : claims associes a un utilisateur - RoleClaim (
IdentityRoleClaim<Guid>) : claims associes a un role - UserLogin (
IdentityUserLogin<Guid>) : logins externes avecProviderEmailetLinkedAt - UserRole (
IdentityUserRole<Guid>) : association utilisateur-role
UserSecuritySettings
Parametres de securite utilisateur (expose via GetSecuritySettings / UpdateSecuritySettings).
Module Audit
AuditLog
Enregistrement complet d'un evenement d'audit.
Namespace : Audit.Entities
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant unique |
OccurredAtUtc | DateTime | Moment de l'action |
ReceivedAtUtc | DateTime | Moment de reception |
ModuleName | string | Module source |
ActionName | string | Nom de l'action |
EventType | string | Type (activity, security, exception) |
EntityType | string | Type d'entite affectee |
EntityId | string | Identifiant d'entite |
ActorUserId | Guid? | Utilisateur acteur |
ActorType | string? | Type d'acteur (user, system) |
Result | string | Resultat (success, failure, denied, noop) |
Reason | string? | Raison en cas d'echec |
Severity | string | Severite |
TenantId | string? | Identifiant de tenant |
IpAddress | string? | Adresse IP source |
UserAgent | string? | User-Agent |
CorrelationId | string? | ID de correlation |
RequestId | string? | ID de requete |
TraceId | string? | Trace ID OpenTelemetry |
SpanId | string? | Span ID OpenTelemetry |
Tags | string[] | Tags |
MetadataJson | string | Metadonnees JSON |
TokenFingerprintSha256 | string? | Empreinte du token JWT |
Source | string | Source de l'evenement |
PayloadJson | string | Payload JSON |
Version | int | Version du format |
Module Messaging
SentMessage
Enregistrement de chaque message envoye.
Namespace : Messaging.Entities
| Propriete | Type | Description |
|---|---|---|
Id | Guid | Identifiant unique |
Channel | string | Canal (email, sms, push) |
Recipient | string | Destinataire |
TemplateName | string | Nom du template utilise |
Subject | string | Sujet |
Status | MessageStatus | Statut (Pending, Sent, Failed, Bounced) |
ErrorMessage | string? | Message d'erreur |
Attempts | int | Nombre de tentatives |
CreatedAt | DateTime | Date de creation |
SentAt | DateTime? | Date d'envoi effectif |
CorrelationId | string? | ID de correlation |