from typing import Optional from datetime import datetime from pydantic import BaseModel # Shared properties class RecommendationBase(BaseModel): recipient_name: str occasion: Optional[str] = None recommendation_text: str item_name: Optional[str] = None description: Optional[str] = None price_estimate: Optional[float] = None purchase_url: Optional[str] = None saved: Optional[bool] = False # Properties to receive via API on creation class RecommendationCreate(BaseModel): recipient_name: str occasion: Optional[str] = None preferences_id: Optional[int] = None budget_min: Optional[float] = None budget_max: Optional[float] = None additional_info: Optional[str] = None # Properties to receive via API on update class RecommendationUpdate(RecommendationBase): recipient_name: Optional[str] = None recommendation_text: Optional[str] = None saved: Optional[bool] = None class RecommendationInDBBase(RecommendationBase): id: int user_id: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True # Additional properties to return via API class Recommendation(RecommendationInDBBase): pass