Coverage for src/lexigram/auth/models/mfa.py: 100%

14 statements  

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

1"""MFA model for Lexigram Auth.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass 

6from datetime import datetime 

7 

8 

9@dataclass(frozen=True) 

10class UserMFA: 

11 """Represents MFA configuration for a user.""" 

12 

13 mfa_id: str 

14 user_id: str 

15 mfa_type: str = "totp" 

16 secret: str = "" 

17 is_enabled: bool = False 

18 last_used_at: datetime | None = None 

19 created_at: datetime | None = None 

20 updated_at: datetime | None = None 

21 

22 

23__all__ = [ 

24 "UserMFA", 

25]