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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 12:26 +0800
1from __future__ import annotations
3from dataclasses import dataclass
4from datetime import datetime
6from lexigram.domain import DomainModel
7from lexigram.validation import Field
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)
26__all__ = [
27 "UserProfile",
28]