39 lines
No EOL
1.1 KiB
Python
39 lines
No EOL
1.1 KiB
Python
from typing import List, Optional
|
|
import uuid
|
|
from datetime import datetime
|
|
from models import Order, Drink
|
|
|
|
|
|
class OrderDatabase:
|
|
def __init__(self):
|
|
self.orders: dict[str, Order] = {}
|
|
|
|
def create_order(self, drinks: List[Drink]) -> Order:
|
|
"""Create a new order with the given drinks."""
|
|
order_id = str(uuid.uuid4())
|
|
order = Order(
|
|
id=order_id,
|
|
order_date=datetime.now(),
|
|
drinks=drinks
|
|
)
|
|
self.orders[order_id] = order
|
|
return order
|
|
|
|
def get_all_orders(self) -> List[Order]:
|
|
"""Get all orders."""
|
|
return list(self.orders.values())
|
|
|
|
def get_order_by_id(self, order_id: str) -> Optional[Order]:
|
|
"""Get a specific order by ID."""
|
|
return self.orders.get(order_id)
|
|
|
|
def delete_order(self, order_id: str) -> bool:
|
|
"""Delete an order by ID. Returns True if successful, False if not found."""
|
|
if order_id in self.orders:
|
|
del self.orders[order_id]
|
|
return True
|
|
return False
|
|
|
|
|
|
# Global database instance
|
|
db = OrderDatabase() |