from pydantic import BaseModel, EmailStr from typing import Optional from datetime import datetime from app.models.user import AuthProvider class UserBase(BaseModel): email: Optional[EmailStr] = None phone_number: Optional[str] = None name: Optional[str] = None class UserCreate(UserBase): password: Optional[str] = None auth_provider: AuthProvider class UserUpdate(UserBase): pass class UserInDBBase(UserBase): id: int auth_provider: AuthProvider is_active: bool is_verified: bool created_at: datetime updated_at: datetime class Config: from_attributes = True class User(UserInDBBase): pass class UserInDB(UserInDBBase): password_hash: Optional[str] = None