from pydantic import BaseModel, EmailStr, Field class RegisterRequest(BaseModel): name: str = Field(min_length=2, max_length=160) email: EmailStr password: str = Field(min_length=10, max_length=128) class LoginRequest(BaseModel): email: EmailStr password: str = Field(min_length=1, max_length=128) class SetPasswordRequest(BaseModel): password: str = Field(min_length=10, max_length=128) current_password: str | None = Field(default=None, max_length=128) class UserResponse(BaseModel): id: str email: EmailStr name: str avatar_url: str | None email_verified: bool has_password: bool providers: list[str]