30 lines
581 B
Python
30 lines
581 B
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class MenuItem(BaseModel):
|
|
item_id: str
|
|
name: str
|
|
category: str
|
|
description: str
|
|
ingredients: list[str]
|
|
price: int | None = None
|
|
price_label: str
|
|
size: str | None = None
|
|
photo_url: str
|
|
source_url: str
|
|
scraped_at: datetime
|
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class MenuSnapshot(BaseModel):
|
|
source_url: str
|
|
scraped_at: datetime
|
|
total_items: int
|
|
items: list[MenuItem]
|
|
|