from typing import Optional, List from pydantic import BaseModel from datetime import datetime from app.schemas.camp import Camp class RouteBase(BaseModel): name: str difficulty: Optional[str] = None description: Optional[str] = None is_standard_route: bool = False class RouteCreate(RouteBase): peak_id: int # GeoJSON LineStringZ: {"type": "LineString", "coordinates": [[lon, lat, ele], ...]} path_geometry: dict class RouteUpdate(RouteBase): path_geometry: Optional[dict] = None class RouteInDBBase(RouteBase): id: int peak_id: int path_geometry: Optional[dict] = None created_at: datetime class Config: from_attributes = True class Route(RouteInDBBase): camps: List[Camp] = []