NOJIRA added Levenshtein decider
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
from typing import List, Dict
|
||||
|
||||
from models.item import Item
|
||||
from models.order import Order
|
||||
|
||||
|
||||
class DTO:
|
||||
def __init__(self):
|
||||
self.__applicants: List[str] = []
|
||||
self.__items: Dict[str, int] = {}
|
||||
self.__orders: List[Order] = []
|
||||
|
||||
def add(self,
|
||||
applicant_name: str,
|
||||
item_names: List[str]
|
||||
) -> None:
|
||||
self.__applicants.append(applicant_name)
|
||||
|
||||
for item_name in item_names:
|
||||
if item_name not in self.__items:
|
||||
self.__items[item_name] = 0
|
||||
self.__items[item_name] += 1
|
||||
|
||||
order = Order(applicant_name, item_names)
|
||||
self.__orders.append(order)
|
||||
|
||||
@property
|
||||
def items(self) -> List[Item]:
|
||||
return sorted([Item(name, amount) for name, amount in self.__items.items()])
|
||||
|
||||
@property
|
||||
def item_count(self) -> int:
|
||||
return sum(self.__items.values())
|
||||
|
||||
@property
|
||||
def applicants(self) -> List[str]:
|
||||
return sorted(self.__applicants)
|
||||
|
||||
@property
|
||||
def orders(self) -> List[Order]:
|
||||
return sorted(self.__orders)
|
||||
@@ -3,10 +3,10 @@ from typing import List
|
||||
|
||||
class Order:
|
||||
def __init__(self,
|
||||
name: str,
|
||||
items: List[str]):
|
||||
self.name = name
|
||||
self.items = items
|
||||
applicant_name: str,
|
||||
item_names: List[str]):
|
||||
self.name = applicant_name
|
||||
self.items = item_names
|
||||
|
||||
def __lt__(self: "Order",
|
||||
other: "Order"
|
||||
|
||||
29
src/models/order_total.py
Normal file
29
src/models/order_total.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from typing import List, Dict
|
||||
|
||||
from item_builder import ItemBuilder
|
||||
from models.item import Item
|
||||
from models.order import Order
|
||||
|
||||
|
||||
class OrderTotal:
|
||||
def __init__(self):
|
||||
self.__orders: List[Order] = []
|
||||
|
||||
def add(self, order: Order) -> None:
|
||||
self.__orders.append(order)
|
||||
|
||||
@property
|
||||
def items(self) -> List[Item]:
|
||||
return ItemBuilder(self.__orders).build()
|
||||
|
||||
@property
|
||||
def item_count(self) -> int:
|
||||
return sum([len(o.items) for o in self.__orders])
|
||||
|
||||
@property
|
||||
def applicants(self) -> List[str]:
|
||||
return sorted([o.name for o in self.__orders])
|
||||
|
||||
@property
|
||||
def orders(self) -> List[Order]:
|
||||
return sorted(self.__orders)
|
||||
Reference in New Issue
Block a user