adiljava's picture
feat: Enhance GeminiClient with dynamic retry logic and rate limit handling
333fb20
Raw
History Blame Contribute Delete
700 Bytes
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
class UserPreferences(BaseModel):
"""User preferences model."""
notifications: bool = True
darkMode: bool = True
theme: str = "dark"
class User(BaseModel):
"""MongoDB User model."""
id: Optional[str] = Field(default=None, alias="_id")
name: str
email: str
image: Optional[str] = None
password_hash: str
preferences: UserPreferences = Field(default_factory=UserPreferences)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
class Config:
populate_by_name = True