Initial commit: SIBU 2.0 MISSION
This commit is contained in:
32
backend/app/models/shuttle.py
Normal file
32
backend/app/models/shuttle.py
Normal file
@ -0,0 +1,32 @@
|
||||
"""Shuttle model for intercity and tourist trips."""
|
||||
from sqlmodel import SQLModel, Field, Column
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from uuid import UUID, uuid4
|
||||
from sqlalchemy import DateTime, func
|
||||
|
||||
|
||||
class Shuttle(SQLModel, table=True):
|
||||
"""Model representing an intercity shuttle or tourist trip."""
|
||||
|
||||
__tablename__ = "shuttles"
|
||||
|
||||
id: Optional[UUID] = Field(default_factory=uuid4, primary_key=True)
|
||||
route_name: str = Field(index=True) # e.g. "Boquete - Santa Catalina"
|
||||
description: Optional[str] = None
|
||||
origin: str = Field(index=True)
|
||||
destination: str = Field(index=True)
|
||||
vehicle_type: str # Private Bus, Private Car, Van
|
||||
company_name: Optional[str] = None # e.g. "Chiriqui Transfers"
|
||||
trip_type: str = "one_way" # one_way, round_trip, both
|
||||
price_per_person: Optional[float] = None
|
||||
price_private_trip: Optional[float] = None
|
||||
estimated_duration: str # e.g. "4.5 hours"
|
||||
departure_times: Optional[str] = None # e.g. "Every Day at 8:00 AM"
|
||||
contact_whatsapp: str
|
||||
phone_number: Optional[str] = None
|
||||
english_speaking: bool = Field(default=False)
|
||||
image_url: Optional[str] = None
|
||||
is_active: bool = Field(default=True)
|
||||
created_at: Optional[datetime] = Field(sa_column=Column(DateTime, server_default=func.now()))
|
||||
updated_at: Optional[datetime] = Field(sa_column=Column(DateTime, server_default=func.now(), onupdate=func.now()))
|
||||
Reference in New Issue
Block a user