Files
PracticaENERGO2/schemas.py

51 lines
1.1 KiB
Python

from typing import Any
from pydantic import BaseModel, EmailStr, Field
class RegisterRequest(BaseModel):
email: EmailStr
password: str = Field(min_length=6, max_length=128)
class LoginRequest(BaseModel):
email: EmailStr
password: str
class ProfileUpdate(BaseModel):
firstname: str = ""
lastname: str = ""
patronymic: str = ""
age: int | None = Field(default=None, ge=18, le=120)
phone: str = ""
class RobotSettingsUpdate(BaseModel):
settings: dict[str, Any]
class RobotsBulkUpdate(BaseModel):
robots: list[dict[str, Any]]
selected_robot_id: str | None = None
class ExternalDataWrite(BaseModel):
user_id: int | None = None
source_app: str = Field(min_length=1, max_length=100)
data_key: str = Field(min_length=1, max_length=100)
data_value: dict[str, Any]
class UserPublic(BaseModel):
id: int
email: str
firstname: str
lastname: str
patronymic: str
age: int | None
phone: str
rating: float
points: int
selected_robot_id: str