login_log.py 825 B

123456789101112131415161718192021222324252627282930
  1. from typing import Optional
  2. from datetime import datetime
  3. from pydantic import BaseModel
  4. from app.models.login_log import LoginMethod, AuthType
  5. class LoginLogBase(BaseModel):
  6. mobile: Optional[str] = None
  7. ip_address: Optional[str] = None
  8. location: Optional[str] = None
  9. user_agent: Optional[str] = None
  10. login_method: Optional[LoginMethod] = LoginMethod.UNIFIED_PAGE
  11. auth_type: Optional[AuthType] = AuthType.PASSWORD
  12. is_success: int = 1
  13. failure_reason: Optional[str] = None
  14. class LoginLogCreate(LoginLogBase):
  15. user_id: Optional[int] = None
  16. class LoginLogResponse(LoginLogBase):
  17. id: int
  18. user_id: Optional[int] = None
  19. created_at: datetime
  20. class Config:
  21. from_attributes = True
  22. class LoginLogListResponse(BaseModel):
  23. total: int
  24. items: list[LoginLogResponse]