| from pydantic import BaseModel | |
| class ProductDetail(BaseModel): | |
| sku: str | |
| name: str | |
| brand: str | |
| price: float | |
| color: str | |
| color_family: str | |
| category: str | |
| gender: str | |
| image_url: str | |
| url: str = "" | |
| image_urls: list[str] = [] | |
| style_tags: list[str] = [] | |
| materials: list[str] = [] | |
| sizes_available: list[str] = [] | |
| product_details: str = "" | |
| in_stock: bool = True | |
| class OutfitItem(BaseModel): | |
| sku: str | |
| name: str | |
| brand: str | |
| price: float | |
| color_family: str | |
| category: str | |
| image_url: str | |
| outfit_score: float | |
| class OutfitResponse(BaseModel): | |
| source: ProductDetail | |
| outfit: dict[str, list[OutfitItem]] | |
| class SimilarProductItem(BaseModel): | |
| sku: str | |
| name: str | |
| brand: str | |
| price: float | |
| color: str | |
| category: str | |
| image_url: str | |
| similarity_score: float | |
| class SimilarResponse(BaseModel): | |
| source: ProductDetail | |
| results: list[SimilarProductItem] | |
| total: int | |