33 lines
No EOL
858 B
Python
33 lines
No EOL
858 B
Python
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
|
|
|
|
class MateType(str, Enum):
|
|
FLORA_MATE = "Flora Mate"
|
|
CLUB_MATE = "Club Mate"
|
|
|
|
|
|
class DrinkType(str, Enum):
|
|
TSCHUNK = "Tschunk"
|
|
TSCHUNK_HANNOVER_MISCHE = "Tschunk Hannover-Mische"
|
|
TSCHUNK_ALKOHOLFREIER_RUM = "Tschunk alkoholfreier Rum"
|
|
VIRGIN_TSCHUNK = "Virgin Tschunk"
|
|
|
|
|
|
class Drink(BaseModel):
|
|
drink_type: DrinkType
|
|
mate_type: MateType
|
|
quantity: int = Field(default=1, ge=1, description="Anzahl der bestellten Getränke")
|
|
notes: Optional[str] = Field(default=None, max_length=500, description="Sonderwünsche oder Anmerkungen zum Getränk")
|
|
|
|
|
|
class Order(BaseModel):
|
|
id: str
|
|
order_date: datetime
|
|
drinks: List[Drink]
|
|
|
|
|
|
class CreateOrderRequest(BaseModel):
|
|
drinks: List[Drink] |