gonets/SRV/models/auth.py

62 lines
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