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