v0.2 - 19 features: comparator, allergies, gamification, shopping list, achievements, stats, profile, share, bottom nav

This commit is contained in:
2026-02-10 18:52:42 -03:00
parent e8f4788a33
commit ecdd7546d3
33 changed files with 2105 additions and 309 deletions

View File

@@ -8,9 +8,10 @@ class ScanRequest(BaseModel):
class IngredientAnalysis(BaseModel):
name: str
popular_name: Optional[str] = None
explanation: str
classification: str
reason: str
explanation: str = ""
classification: str = "warning"
reason: str = ""
is_allergen: Optional[bool] = False
class RecipeInfo(BaseModel):
title: Optional[str] = None
@@ -21,7 +22,18 @@ class RecipeInfo(BaseModel):
steps: Optional[List[str]] = None
tip: Optional[str] = None
class SubstitutionItem(BaseModel):
name: str
brand: Optional[str] = None
reason: str = ""
estimated_score: Optional[int] = None
class AllergenAlert(BaseModel):
ingredient: str
allergy: str
class ScanResult(BaseModel):
id: Optional[int] = None
barcode: str
product_name: Optional[str] = None
brand: Optional[str] = None
@@ -31,12 +43,15 @@ class ScanResult(BaseModel):
summary: str
positives: List[str]
negatives: List[str]
ingredients: List[IngredientAnalysis]
ingredients: List[Any] # Allow flexible ingredient format
nutrition: Optional[Dict[str, Any]] = None
nutrition_verdict: Optional[str] = None
recipe: Optional[RecipeInfo] = None
recipe: Optional[Any] = None
nutri_score: Optional[str] = None
nova_group: Optional[int] = None
substitutions: Optional[List[Any]] = None
allergen_alerts: Optional[List[Any]] = None
new_badges: Optional[List[str]] = None
source: str = "open_food_facts"
class ScanHistoryItem(BaseModel):