from pydantic import BaseModel, EmailStr from typing import Optional class UserRegister(BaseModel): full_name: str email: Optional[EmailStr] = None phone: Optional[str] = None password: str class UserLogin(BaseModel): email: Optional[str] = None phone: Optional[str] = None password: str class OAuthLogin(BaseModel): provider: str # google | facebook | apple oauth_id: str email: Optional[str] = None full_name: Optional[str] = None push_token: Optional[str] = None class Token(BaseModel): access_token: str token_type: str = "bearer" role: str = "CIUDADANO" class UserOut(BaseModel): id: int full_name: str email: Optional[str] = None phone: Optional[str] = None oauth_provider: Optional[str] = None role: str = "CIUDADANO" class Config: from_attributes = True class TokenData(BaseModel): user_id: Optional[int] = None