mirror of
http://88.130.71.182:3000/BlitTech/badoHair_be.git
synced 2026-06-13 08:49:46 +00:00
51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
from pydantic import BaseModel, EmailStr, Field
|
|
|
|
|
|
class RegisterRequest(BaseModel):
|
|
email: EmailStr
|
|
password: str = Field(min_length=8)
|
|
# Accept either `name` (frontend) or `full_name`
|
|
name: str | None = Field(None, min_length=2, max_length=100)
|
|
full_name: str | None = Field(None, min_length=2, max_length=100)
|
|
phone: str | None = None
|
|
|
|
def resolved_name(self) -> str:
|
|
return self.name or self.full_name or ""
|
|
|
|
|
|
class LoginRequest(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class TokenResponse(BaseModel):
|
|
access_token: str
|
|
refresh_token: str
|
|
token_type: str = "bearer"
|
|
expires_in: int
|
|
|
|
|
|
class RefreshRequest(BaseModel):
|
|
refresh_token: str
|
|
|
|
|
|
class ForgotPasswordRequest(BaseModel):
|
|
email: EmailStr
|
|
|
|
|
|
class ResetPasswordRequest(BaseModel):
|
|
new_password: str = Field(min_length=8)
|
|
|
|
|
|
class ProfileOut(BaseModel):
|
|
id: str
|
|
email: str
|
|
full_name: str | None = None
|
|
phone: str | None = None
|
|
role: str
|
|
|
|
|
|
class UpdateProfileRequest(BaseModel):
|
|
full_name: str | None = Field(None, min_length=2, max_length=100)
|
|
phone: str | None = None
|