
- FastAPI application with user management, destinations, and trip planning - SQLite database with SQLAlchemy ORM - Database models for Users, Destinations, and Trips - Pydantic schemas for request/response validation - Full CRUD API endpoints for all resources - Alembic migrations setup - Health check endpoint - CORS configuration for development - Comprehensive documentation and README
42 lines
955 B
Python
42 lines
955 B
Python
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from .user import User
|
|
from .destination import Destination
|
|
|
|
|
|
class TripBase(BaseModel):
|
|
title: str
|
|
description: Optional[str] = None
|
|
destination_id: int
|
|
start_date: datetime
|
|
end_date: datetime
|
|
budget: Optional[float] = None
|
|
status: Optional[str] = "planned"
|
|
|
|
|
|
class TripCreate(TripBase):
|
|
pass
|
|
|
|
|
|
class TripUpdate(BaseModel):
|
|
title: Optional[str] = None
|
|
description: Optional[str] = None
|
|
destination_id: Optional[int] = None
|
|
start_date: Optional[datetime] = None
|
|
end_date: Optional[datetime] = None
|
|
budget: Optional[float] = None
|
|
status: Optional[str] = None
|
|
|
|
|
|
class Trip(TripBase):
|
|
id: int
|
|
user_id: int
|
|
created_at: datetime
|
|
updated_at: Optional[datetime] = None
|
|
user: Optional[User] = None
|
|
destination: Optional[Destination] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|