Tabble-v1 / app /models /order.py
Shyamnath's picture
Initial commit with Git LFS
80feb1b
raw
history blame
1.27 kB
from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
from .dish import Dish
class OrderItemBase(BaseModel):
dish_id: int
quantity: int = 1
remarks: Optional[str] = None
class OrderItemCreate(OrderItemBase):
pass
class OrderItem(OrderItemBase):
id: int
order_id: int
created_at: datetime
dish: Optional[Dish] = None
# Add dish_name property to ensure it's always available
@property
def dish_name(self) -> str:
if self.dish:
return self.dish.name
return "Unknown Dish"
class Config:
from_attributes = True # Updated from orm_mode for Pydantic V2
class OrderBase(BaseModel):
table_number: int
unique_id: str
class OrderCreate(OrderBase):
items: List[OrderItemCreate]
username: Optional[str] = None
password: Optional[str] = None
class OrderUpdate(BaseModel):
status: str
class Order(OrderBase):
id: int
status: str
created_at: datetime
updated_at: datetime
items: List[OrderItem] = []
person_id: Optional[int] = None
person_name: Optional[str] = None
visit_count: Optional[int] = None
class Config:
from_attributes = True # Updated from orm_mode for Pydantic V2