2025-06-09 14:43:25 +05:00
|
|
|
from pydantic import BaseModel
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
2025-06-20 11:22:54 +05:00
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
class UserCreate(BaseModel):
|
2025-06-20 11:22:54 +05:00
|
|
|
"""
|
|
|
|
|
Модель созданного пользователя
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
|
|
|
|
username (str): Имя пользователя
|
|
|
|
|
password (str): Пароль пользователя
|
|
|
|
|
is_admin (bool): Административный доступ
|
|
|
|
|
"""
|
|
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
username: str
|
|
|
|
|
password: str
|
|
|
|
|
is_admin: bool = False
|
|
|
|
|
|
2025-06-20 11:22:54 +05:00
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
class UserLogin(BaseModel):
|
2025-06-20 11:22:54 +05:00
|
|
|
"""
|
|
|
|
|
Модель авторизации пользователя
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
|
|
|
|
username (str): Имя пользователя
|
|
|
|
|
password (str): Пароль пользователя
|
|
|
|
|
"""
|
|
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
username: str
|
|
|
|
|
password: str
|
|
|
|
|
|
2025-06-20 11:22:54 +05:00
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
class UserResponse(BaseModel):
|
2025-06-20 11:22:54 +05:00
|
|
|
"""
|
|
|
|
|
Модель проверки наличия пользователя
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
|
|
|
|
id (int): Идентификатор
|
|
|
|
|
username (str): Имя пользователя
|
|
|
|
|
is_admin (bool): Административный доступ
|
|
|
|
|
"""
|
|
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
id: int
|
|
|
|
|
username: str
|
|
|
|
|
is_admin: bool
|
|
|
|
|
|
2025-06-20 11:22:54 +05:00
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
class Token(BaseModel):
|
2025-06-20 11:22:54 +05:00
|
|
|
"""
|
|
|
|
|
Токен пользователя
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
|
|
|
|
access_token (str): Токен пользователя (захэширован)
|
|
|
|
|
token_type (str): Тип токена
|
|
|
|
|
session_id (Optional[str]): Идентификатор сессии
|
|
|
|
|
user (Optional[UserResponse]): Пользователь на основе проверки наличия пользователя
|
|
|
|
|
"""
|
|
|
|
|
|
2025-06-09 14:43:25 +05:00
|
|
|
access_token: str
|
|
|
|
|
token_type: str
|
|
|
|
|
session_id: Optional[str] = None
|
2025-06-20 11:22:54 +05:00
|
|
|
user: Optional[UserResponse] = None
|