from pydantic import BaseModel from typing import Optional, List from schemas.base import UTCDatetime class ShiftBreakOut(BaseModel): id: int shift_id: int started_at: UTCDatetime ended_at: Optional[UTCDatetime] = None model_config = {"from_attributes": True} class WaiterShiftOut(BaseModel): id: int waiter_id: int waiter_name: Optional[str] = None business_day_id: int started_at: UTCDatetime ended_at: Optional[UTCDatetime] = None starting_cash: Optional[float] = None total_collected: Optional[float] = None net_to_deliver: Optional[float] = None is_active: bool = True notes: Optional[str] = None breaks: List[ShiftBreakOut] = [] model_config = {"from_attributes": True} class StartShiftRequest(BaseModel): starting_cash: Optional[float] = None waiter_id: Optional[int] = None # manager use: start shift for a specific waiter class EndShiftRequest(BaseModel): notes: Optional[str] = None