Coverage for src/lexigram/auth/authn/schemas/user.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 12:26 +0800

1from __future__ import annotations 

2 

3from dataclasses import dataclass 

4from datetime import datetime 

5 

6from lexigram.domain import DomainModel 

7from lexigram.validation import Field 

8 

9 

10@dataclass(init=False) 

11class UserProfile(DomainModel): 

12 user_id: str 

13 name: str 

14 email: str 

15 created_at: datetime 

16 is_active: bool = True 

17 is_verified: bool = False 

18 updated_at: datetime | None = None 

19 last_login_at: datetime | None = None 

20 login_count: int = 0 

21 roles: list[str] = Field(default_factory=list) 

22 permissions: list[str] = Field(default_factory=list) 

23 profile: dict = Field(default_factory=dict) 

24 

25 

26__all__ = [ 

27 "UserProfile", 

28]