feat: добавлены схемы данных для авторизации в приложении
- Создан новый файл `schemas.py` в директории `lkeep/apps/auth`. - Внутри файла определены несколько классов Pydantic для обработки различных сценариев работы с пользователями (получение по ID, электронной почте, регистрация и создание). - Каждый класс имеет соответствующие поля и типы данных, а также документации в формате docstring. - Добавлены комментарии к файлу для описания проекта, автора, года создания и специализации.
This commit is contained in:
parent
b71f6d2a81
commit
67f980d162
79
lkeep/apps/auth/schemas.py
Normal file
79
lkeep/apps/auth/schemas.py
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
"""
|
||||||
|
Проект: Lkeep
|
||||||
|
Автор: Иван Ашихмин
|
||||||
|
Год: 2025
|
||||||
|
Специально для проекта "Код на салфетке"
|
||||||
|
https://pressanybutton.ru/category/servis-na-fastapi/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
from pydantic import BaseModel, EmailStr
|
||||||
|
|
||||||
|
|
||||||
|
class GetUserByID(BaseModel):
|
||||||
|
"""
|
||||||
|
Класс для получения пользователя по его уникальному идентификатору (ID).
|
||||||
|
|
||||||
|
:ivar id: Уникальный идентификатор пользователя, может быть представлен как объект типа uuid.UUID или строкой.
|
||||||
|
:type id: uuid.UUID | str
|
||||||
|
"""
|
||||||
|
|
||||||
|
id: uuid.UUID | str
|
||||||
|
|
||||||
|
|
||||||
|
class GetUserByEmail(BaseModel):
|
||||||
|
"""
|
||||||
|
Класс для поиска пользователя по электронной почте.
|
||||||
|
|
||||||
|
:ivar email: Электронная почта пользователя.
|
||||||
|
:type email: EmailStr
|
||||||
|
"""
|
||||||
|
|
||||||
|
email: EmailStr
|
||||||
|
|
||||||
|
|
||||||
|
class RegisterUser(GetUserByEmail):
|
||||||
|
"""
|
||||||
|
Класс для регистрации пользователя, наследующий класс GetUserByEmail.
|
||||||
|
|
||||||
|
:ivar password: Пароль пользователя.
|
||||||
|
:type password: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
password: str
|
||||||
|
|
||||||
|
|
||||||
|
class CreateUser(GetUserByEmail):
|
||||||
|
"""
|
||||||
|
Класс для создания пользователя.
|
||||||
|
|
||||||
|
:ivar hashed_password: Хэшированный пароль пользователя.
|
||||||
|
:type hashed_password: str
|
||||||
|
"""
|
||||||
|
|
||||||
|
hashed_password: str
|
||||||
|
|
||||||
|
|
||||||
|
class UserReturnData(GetUserByID, GetUserByEmail):
|
||||||
|
"""
|
||||||
|
Класс для представления данных пользователя, возвращаемых из API.
|
||||||
|
|
||||||
|
:ivar is_active: Статус активности пользователя.
|
||||||
|
:type is_active: bool
|
||||||
|
:ivar is_verified: Статус верификации пользователя.
|
||||||
|
:type is_verified: bool
|
||||||
|
:ivar is_superuser: Флаг, указывающий на наличие привилегий суперпользователя.
|
||||||
|
:type is_superuser: bool
|
||||||
|
:ivar created_at: Временная метка создания записи о пользователе.
|
||||||
|
:type created_at: datetime.datetime
|
||||||
|
:ivar updated_at: Временная метка последнего обновления записи о пользователе.
|
||||||
|
:type updated_at: datetime.datetime
|
||||||
|
"""
|
||||||
|
|
||||||
|
is_active: bool
|
||||||
|
is_verified: bool
|
||||||
|
is_superuser: bool
|
||||||
|
created_at: datetime.datetime
|
||||||
|
updated_at: datetime.datetime
|
Loading…
x
Reference in New Issue
Block a user