54 lines
No EOL
1.6 KiB
Python
54 lines
No EOL
1.6 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
|
|
class UserCreate(BaseModel):
|
|
"""
|
|
Модель созданного пользователя
|
|
|
|
Атрибуты:
|
|
username (str): Имя пользователя
|
|
password (str): Пароль пользователя
|
|
is_admin (bool): Административный доступ
|
|
"""
|
|
username: str
|
|
password: str
|
|
is_admin: bool = False
|
|
|
|
class UserLogin(BaseModel):
|
|
"""
|
|
Модель авторизации пользователя
|
|
|
|
Атрибуты:
|
|
username (str): Имя пользователя
|
|
password (str): Пароль пользователя
|
|
"""
|
|
username: str
|
|
password: str
|
|
|
|
class UserResponse(BaseModel):
|
|
"""
|
|
Модель проверки наличия пользователя
|
|
|
|
Атрибуты:
|
|
id (int): Идентификатор
|
|
username (str): Имя пользователя
|
|
is_admin (bool): Административный доступ
|
|
"""
|
|
id: int
|
|
username: str
|
|
is_admin: bool
|
|
|
|
class Token(BaseModel):
|
|
"""
|
|
Токен пользователя
|
|
|
|
Атрибуты:
|
|
access_token (str): Токен пользователя (захэширован)
|
|
token_type (str): Тип токена
|
|
session_id (Optional[str]): Идентификатор сессии
|
|
user (Optional[UserResponse]): Пользователь на основе проверки наличия пользователя
|
|
"""
|
|
access_token: str
|
|
token_type: str
|
|
session_id: Optional[str] = None
|
|
user: Optional[UserResponse] = None |