41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from pydantic import (
|
|
Field,
|
|
)
|
|
|
|
from app.models.user import UserRole
|
|
from .general import EmailSchema, PasswordSchema
|
|
|
|
|
|
class UserBaseSchema(EmailSchema):
|
|
name: str = Field(
|
|
min_length=3, max_length=50, description="Имя, от 3 до 50 символов"
|
|
)
|
|
surname: str = Field(
|
|
min_length=3, max_length=50, description="Фамилия, от 3 до 50 символов"
|
|
)
|
|
patronymic: str = Field(
|
|
min_length=3,
|
|
max_length=50,
|
|
description="Отчество, от 3 до 50 символов",
|
|
default=None,
|
|
)
|
|
role: UserRole = Field(description="Роль пользователя в системе", default=UserRole.GUEST)
|
|
|
|
|
|
class UserCreateSchema(PasswordSchema, UserBaseSchema):
|
|
pass
|
|
|
|
|
|
class UserAddDBSchema(UserBaseSchema):
|
|
password: str = Field(min_length=5, description="Пароль в формате HASH-строки")
|
|
|
|
|
|
class UserAuthSchema(EmailSchema):
|
|
password: str = Field(
|
|
min_length=5, max_length=50, description="Пароль, от 5 до 50 знаков"
|
|
)
|
|
|
|
|
|
class UserSchema(UserBaseSchema):
|
|
id: int = Field(description="Идентификатор пользователя")
|