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