
- Setup project structure with FastAPI - Create database models for users, gifts, preferences, and recommendations - Configure SQLite database with SQLAlchemy ORM - Setup Alembic for database migrations - Implement user authentication with JWT - Create API endpoints for users, gifts, preferences, and recommendations - Integrate OpenAI API for gift recommendations - Add comprehensive documentation
47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
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 |