from pydantic import BaseModel from typing import Optional from datetime import datetime from decimal import Decimal class BookingBase(BaseModel): booking_type: str reference_number: str provider: str description: Optional[str] = None start_date: datetime end_date: Optional[datetime] = None total_amount: Decimal currency: str = "USD" status: str = "confirmed" booking_details: Optional[str] = None trip_id: Optional[int] = None class BookingCreate(BookingBase): pass class BookingUpdate(BaseModel): booking_type: Optional[str] = None reference_number: Optional[str] = None provider: Optional[str] = None description: Optional[str] = None start_date: Optional[datetime] = None end_date: Optional[datetime] = None total_amount: Optional[Decimal] = None currency: Optional[str] = None status: Optional[str] = None booking_details: Optional[str] = None trip_id: Optional[int] = None class BookingResponse(BookingBase): id: int user_id: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True