diff --git a/functions/lego_classes.py b/functions/lego_classes.py index 19da1899f8b010a5d0e02bc55fb56f58337ddbd8..7e05af77dd38cb6f0f21b56b9e5f56dd380ed231 100644 --- a/functions/lego_classes.py +++ b/functions/lego_classes.py @@ -7,12 +7,15 @@ from typing import Any, Union, Literal, TypedDict, TypeVar, Type, List, Optional class LegoItem: - def __init__(self, item_number: int, mass: float, delivery_time: int) -> None: + def __init__(self, item_number: int, mass: float, delivery_time: int, **kwargs) -> None: # , *args, **kwargs not handling additional/optional specs right now - self.id = uuid.uuid4() - self.item_number = item_number - self.mass = mass - self.delivery_time = delivery_time + self.id: uuid.UUID = uuid.uuid4() + self.properties: dict = kwargs + self.item_number: int = item_number + self.mass: float = mass + self.delivery_time: int = delivery_time + # TODO: Set parent directly and not via id? This would allow for easier traversal of the tree + # Currently there is no way to search for parts and components in tree by id. self.parent_id = None # This will be set when added to a component def __str__(self): @@ -22,6 +25,8 @@ class LegoItem: f"parent_id={self.parent_id})" ) + def __repr__(self): + return f"Lego Item [{self.id}]" class LegoComponent: def __init__(self, items=None | LegoItem | list[LegoItem],