# Domain Entities — Unit 02: Identity & RBAC Dit document beschrijft de data-entiteiten die nodig zijn voor identiteitsbeheer. ## 1. ApplicationUser Breidt de standaard `IdentityUser` uit. - **Email**: Unieke identifier. - **Role**: De primaire hiërarchische rol (`Owner`, `Administrator`, `User`). - **IsActive**: Boolean status. - **CreatedAt**: Tijdstip van aanmaak. - **ModulePermissions**: Navigatie-eigenschap naar module-specifieke rechten. ## 2. RefreshToken - **Id**: Guid. - **Token**: De gehashte token string. - **UserId**: Link naar de `ApplicationUser`. - **ExpiryDate**: Wanneer het token verloopt. - **IsUsed**: Boolean (voor re-use detection). - **IsRevoked**: Boolean (handmatige intrekking). - **CreatedByIp**: IP adres voor audit trail. ## 3. Invitation - **Email**: Adres waar de uitnodiging naar verzonden is. - **Role**: De toegekende rol na acceptatie. - **Token**: Unieke GUID/String. - **ExpiryDate**: Geldigheidsduur van de uitnodiging. - **IsAccepted**: Boolean. ## 4. ModulePermission - **UserId**: Link naar `ApplicationUser`. - **ModuleName**: Naam van de module. - **Permission**: De specifieke string-gebaseerde permissie (bijv. "Write", "Admin").