gonets/SRV/models/auth.py

63 lines
1.6 KiB
Python
Raw Permalink Normal View History

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