- MANUAL-PRODUTO.md: Manual do usuário final - MANUAL-VENDAS.md: Estratégia comercial e vendas - MANUAL-TECNICO.md: Infraestrutura e deploy - README.md: Visão geral do projeto
37 lines
922 B
Python
37 lines
922 B
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
|
|
class ScanRequest(BaseModel):
|
|
barcode: str
|
|
|
|
class IngredientAnalysis(BaseModel):
|
|
name: str
|
|
popular_name: Optional[str] = None
|
|
explanation: str
|
|
classification: str # "good", "warning", "bad"
|
|
reason: str
|
|
|
|
class ScanResult(BaseModel):
|
|
barcode: str
|
|
product_name: Optional[str] = None
|
|
brand: Optional[str] = None
|
|
category: Optional[str] = None
|
|
image_url: Optional[str] = None
|
|
score: int
|
|
summary: str
|
|
positives: List[str]
|
|
negatives: List[str]
|
|
ingredients: List[IngredientAnalysis]
|
|
nutri_score: Optional[str] = None
|
|
nova_group: Optional[int] = None
|
|
source: str = "open_food_facts"
|
|
|
|
class ScanHistoryItem(BaseModel):
|
|
id: int
|
|
barcode: str
|
|
product_name: Optional[str] = None
|
|
brand: Optional[str] = None
|
|
score: int
|
|
scanned_at: datetime
|