Spaces:
Running
Running
| from pydantic import BaseModel | |
| from typing import List, Optional, Dict | |
| class SelectedVendor(BaseModel): | |
| vendor_id: str | |
| vendor_name: str | |
| total_cost: float | |
| items_count: int | |
| item_ids: List[str] | |
| avg_quality_score: float | |
| class StrategyResult(BaseModel): | |
| strategy_name: str | |
| total_cost: float | |
| avg_delivery_days: float | |
| vendor_count: int | |
| savings: float | |
| score: float | |
| quality_score: float | |
| allocations: List[SelectedVendor] | |
| class AnalysisResponse(BaseModel): | |
| rfq_id: str | |
| currency: str | |
| strategies: Dict[str, StrategyResult] | |
| recommended_strategy: str | |
| class RFQItem(BaseModel): | |
| id: str | |
| inn_name: str | |
| quantity: int | |
| class QuoteOffer(BaseModel): | |
| rfq_item_id: str | |
| unit_price: float | |
| delivery_days: int | |
| brand: Optional[str] = None | |
| manufacturer: Optional[str] = None | |
| class VendorOffer(BaseModel): | |
| vendor_id: str | |
| vendor_name: str | |
| rating: float | |
| is_verified: bool | |
| offers: List[QuoteOffer] |