from pydantic import BaseModel, EmailStr from datetime import datetime from typing import Optional class UserBase(BaseModel): email: EmailStr name: Optional[str] = None class UserCreate(UserBase): password: str class UserLogin(BaseModel): email: EmailStr password: str class UserUpdate(BaseModel): name: Optional[str] = None phone: Optional[str] = None location: Optional[str] = None notify_price_alerts: Optional[bool] = None notify_new_products: Optional[bool] = None notify_deals: Optional[bool] = None notify_newsletter: Optional[bool] = None class UserResponse(UserBase): id: int phone: Optional[str] = None location: Optional[str] = None avatar_url: Optional[str] = None is_active: bool is_verified: bool created_at: datetime class Config: from_attributes = True class Token(BaseModel): access_token: str token_type: str = "bearer" class TokenData(BaseModel): user_id: Optional[int] = None