Automated Action 2cb6659b63 Add comprehensive travel app backend with FastAPI
- User authentication with JWT tokens
- Trip management with itineraries
- Destination database with search functionality
- Booking management for flights, hotels, car rentals, activities
- SQLite database with Alembic migrations
- Health monitoring endpoint
- CORS enabled for all origins
- Complete API documentation at /docs and /redoc
- Environment variable support for SECRET_KEY

Requirements for production:
- Set SECRET_KEY environment variable
2025-06-20 01:29:17 +00:00

28 lines
1.2 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Text, ForeignKey, Numeric
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.db.base import Base
class Booking(Base):
__tablename__ = "bookings"
id = Column(Integer, primary_key=True, index=True)
booking_type = Column(String, nullable=False) # flight, hotel, car_rental, activity
reference_number = Column(String, unique=True, nullable=False)
provider = Column(String, nullable=False)
description = Column(Text)
start_date = Column(DateTime, nullable=False)
end_date = Column(DateTime)
total_amount = Column(Numeric(10, 2), nullable=False)
currency = Column(String, default="USD")
status = Column(String, default="confirmed") # confirmed, cancelled, pending
booking_details = Column(Text) # JSON string for flexible booking data
user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
trip_id = Column(Integer, ForeignKey("trips.id"))
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
user = relationship("User", back_populates="bookings")
trip = relationship("Trip", back_populates="bookings")