feat: добавлены схемы данных для авторизации в приложении
- Создан новый файл `schemas.py` в директории `lkeep/apps/auth`. - Внутри файла определены несколько классов Pydantic для обработки различных сценариев работы с пользователями (получение по ID, электронной почте, регистрация и создание). - Каждый класс имеет соответствующие поля и типы данных, а также документации в формате docstring. - Добавлены комментарии к файлу для описания проекта, автора, года создания и специализации.
This commit is contained in:
		
							
								
								
									
										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 | ||||
		Reference in New Issue
	
	Block a user