52 lines
No EOL
1.6 KiB
Python
52 lines
No EOL
1.6 KiB
Python
from typing import List, Union
|
|
from datetime import datetime
|
|
|
|
from product import Product
|
|
|
|
class Person:
|
|
def __init__(self, id: int, name: str) -> None:
|
|
self.id = id
|
|
self.name = name
|
|
|
|
class Measurement:
|
|
def __init__(self, qty: int, unit: str) -> None:
|
|
self.qty = qty
|
|
self.unit = unit
|
|
|
|
class Ingredient:
|
|
def __init__(self, id: int, line: str, name: str, product: Product, measure: Measurement, preparation: str) -> None:
|
|
self.id = id
|
|
self.name = name
|
|
self.product = product
|
|
self.measure = measure
|
|
self.line = line
|
|
self.preparation = preparation
|
|
|
|
class Recipe:
|
|
def __init__(self, id: int, name: str, link: str, ingredients: List[Ingredient]) -> None:
|
|
self.id = id
|
|
self.name = name
|
|
self.link = link
|
|
self.ingredients = ingredients
|
|
|
|
class Meal:
|
|
def __init__(self, id: int, date: datetime, chef: List[Person], cleanup: List[Person],
|
|
consumers: List[Person], recipes: List[Recipe]) -> None:
|
|
self.id = id
|
|
self.date = date
|
|
self.chef = chef
|
|
self.cleanup = cleanup
|
|
self.consumers = consumers
|
|
self.recipes = recipes
|
|
|
|
class ShoppingListItem:
|
|
def __init__(self, id: int, food_item: Product, measure: Measurement, source: Union[Meal, None]) -> None:
|
|
self.id = id
|
|
self.food_item = food_item
|
|
self.measure = measure
|
|
self.source = source
|
|
|
|
class ShoppingList:
|
|
def __init__(self, date: datetime, items: List[ShoppingListItem]) -> None:
|
|
self.date = date
|
|
self.items = items |