From f7d64332a787da6c7486470e8d1b177a0ed23593 Mon Sep 17 00:00:00 2001 From: host Date: Sun, 9 Aug 2026 14:22:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D1=85=D0=B5=D0=BC=D1=8B=20=D0=B0=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/schemas.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 backend/app/schemas.py diff --git a/backend/app/schemas.py b/backend/app/schemas.py new file mode 100644 index 0000000..ccb6e45 --- /dev/null +++ b/backend/app/schemas.py @@ -0,0 +1,31 @@ +from datetime import datetime + +from pydantic import BaseModel, ConfigDict, EmailStr, Field + +from .models import UserRole + + +class UserCreate(BaseModel): + """Данные для регистрации пользователя.""" + + email: EmailStr + password: str = Field(min_length=12, max_length=128) + + +class UserOut(BaseModel): + """Публичное представление пользователя без пароля.""" + + model_config = ConfigDict(from_attributes=True) + + id: int + email: EmailStr + role: UserRole + is_active: bool + created_at: datetime + + +class TokenOut(BaseModel): + """Ответ с access token.""" + + access_token: str + token_type: str = "bearer"