"""Pydantic-схемы аутентификации.""" from datetime import datetime from pydantic import BaseModel, ConfigDict from app.models.enums import MessengerType class LoginTokenCreate(BaseModel): region_id: int | None = None user_id: int | None = None ttl_minutes: int = 60 class LoginTokenOut(BaseModel): id: str url: str expires_at: datetime class LoginRequest(BaseModel): token: str messenger_type: MessengerType messenger_id: str full_name: str | None = None class RefreshRequest(BaseModel): refresh_token: str class TokenPair(BaseModel): access_token: str refresh_token: str expires_at: datetime class RegionOut(BaseModel): model_config = ConfigDict(from_attributes=True) id: int name: str is_primary: bool class RoleOut(BaseModel): code: str region_id: int | None = None class UserOut(BaseModel): model_config = ConfigDict(from_attributes=True) id: int full_name: str | None = None member_type: str | None = None regions: list[RegionOut] = [] roles: list[RoleOut] = [] class LoginResponse(TokenPair): user: UserOut