2025-06-09 10:17:12 +05:00
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
class UserCreate(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Модель созданного пользователя.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``username`` (str): Имя пользователя.
|
|
|
|
|
|
- ``password`` (str): Пароль пользователя.
|
|
|
|
|
|
- ``is_admin`` (bool): Флаг административного доступа.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
username: str
|
|
|
|
|
|
password: str
|
|
|
|
|
|
is_admin: bool = False
|
|
|
|
|
|
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
class UserLogin(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Модель авторизации пользователя.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``username`` (str): Имя пользователя.
|
|
|
|
|
|
- ``password`` (str): Пароль пользователя.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
username: str
|
|
|
|
|
|
password: str
|
|
|
|
|
|
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
class UserResponse(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Модель, используемая при возврате сведений о пользователе.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``id`` (int): Идентификатор пользователя.
|
|
|
|
|
|
- ``username`` (str): Имя пользователя.
|
|
|
|
|
|
- ``is_admin`` (bool): Флаг административного доступа.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
id: int
|
|
|
|
|
|
username: str
|
|
|
|
|
|
is_admin: bool
|
|
|
|
|
|
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
class Token(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Модель JWT-токена.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``access_token`` (str): Значение токена (в формате JWT).
|
|
|
|
|
|
- ``token_type`` (str): Тип токена (обычно ``bearer``).
|
|
|
|
|
|
- ``session_id`` (Optional[str]): Идентификатор сессии.
|
|
|
|
|
|
- ``user`` (Optional[UserResponse]): Данные пользователя, если включены в ответ.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
access_token: str
|
|
|
|
|
|
token_type: str
|
|
|
|
|
|
session_id: Optional[str] = None
|
2025-06-12 16:32:05 +05:00
|
|
|
|
user: Optional[UserResponse] = None
|