Neda/Back/domains/users/schemas.py
2026-03-07 19:09:49 +03:30

32 lines
815 B
Python

import uuid
from pydantic import BaseModel
from pydantic import BaseModel, Field, field_validator
import re
class UserCreate(BaseModel):
username: str
phone_number: str | None = Field(None, description="11 digit phone number")
is_admin: bool = False
@field_validator("phone_number")
@classmethod
def validate_phone_number(cls, v: str | None) -> str | None:
if v is None:
return v
if not re.match(r"^\d{11}$", v):
raise ValueError("Phone number must be exactly 11 digits")
return v
class UserResponse(BaseModel):
id: uuid.UUID
username: str
phone_number: str | None
is_admin: bool
is_active: bool
class Config:
from_attributes = True
class UserCreateResult(BaseModel):
user: UserResponse
secret: str