
- 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
59 lines
1.2 KiB
Python
59 lines
1.2 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
from decimal import Decimal
|
|
|
|
|
|
class TripBase(BaseModel):
|
|
title: str
|
|
description: Optional[str] = None
|
|
start_date: datetime
|
|
end_date: datetime
|
|
budget: Optional[Decimal] = None
|
|
status: str = "planned"
|
|
|
|
|
|
class TripCreate(TripBase):
|
|
pass
|
|
|
|
|
|
class TripUpdate(BaseModel):
|
|
title: Optional[str] = None
|
|
description: Optional[str] = None
|
|
start_date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
budget: Optional[Decimal] = None
|
|
status: Optional[str] = None
|
|
|
|
|
|
class TripResponse(TripBase):
|
|
id: int
|
|
user_id: int
|
|
created_at: datetime
|
|
updated_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class ItineraryBase(BaseModel):
|
|
destination_id: int
|
|
day_number: int
|
|
activity: str
|
|
description: Optional[str] = None
|
|
start_time: Optional[datetime] = None
|
|
end_time: Optional[datetime] = None
|
|
|
|
|
|
class ItineraryCreate(ItineraryBase):
|
|
pass
|
|
|
|
|
|
class ItineraryResponse(ItineraryBase):
|
|
id: int
|
|
trip_id: int
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|