ECOPRINT / model.py
zainab1234awan's picture
Upload 2 files
4b6b1bd verified
Raw
History Blame Contribute Delete
1.17 kB
from pydantic import BaseModel
from typing import Optional, List, Dict
from enum import Enum
class ProductCategory(str, Enum):
FOOD = "food"
BEVERAGE = "beverage"
PERSONAL_CARE = "personal_care"
HOUSEHOLD = "household"
ELECTRONICS = "electronics"
CLOTHING = "clothing"
OTHER = "other"
class EnvironmentalFactors(BaseModel):
deforestation_risk: float # 0-10
pollution_risk: float # 0-10
biodiversity_impact: float # 0-10
class Product(BaseModel):
id: Optional[int] = None
name: str
category: ProductCategory
ingredients: List[str] = []
materials: List[str] = []
packaging: List[str] = []
is_organic: bool = False
is_recyclable: bool = False
contains_palm_oil: bool = False
contains_chemicals: bool = False
water_usage: str = "medium" # low, medium, high
carbon_footprint: str = "medium" # low, medium, high
class EcoScoreResult(BaseModel):
product_name: str
eco_score: float # 1-10
factors: EnvironmentalFactors
breakdown: Dict[str, float]
class AlternativeProduct(BaseModel):
name: str
category: str
eco_score: float
reason: str