from fastapi import APIRouter, HTTPException, Depends from pydantic import BaseModel from typing import Optional from app.db.database import get_connection from app.core.dependencies import get_current_user router = APIRouter() class AddressCreate(BaseModel): lat: float lng: float alias: Optional[str] = None address_text: str @router.post("/addresses") async def create_address( address: AddressCreate, current_user: dict = Depends(get_current_user) ): # Determine route based on location (simplified - in production use PostGIS) route_id = "RUTA-01" # Mock: should calculate based on lat/lng conn = get_connection() cursor = conn.execute( "INSERT INTO addresses (user_id, alias, lat, lng, route_id) VALUES (?, ?, ?, ?, ?) RETURNING id", (current_user["id"], address.alias, address.lat, address.lng, route_id) ) address_id = cursor.fetchone()[0] conn.commit() conn.close() return {"id": address_id, "route_id": route_id} @router.get("/addresses") async def get_addresses(current_user: dict = Depends(get_current_user)): conn = get_connection() addresses = conn.execute( "SELECT id, alias, lat, lng, route_id FROM addresses WHERE user_id = ?", (current_user["id"],) ).fetchall() conn.close() return [dict(addr) for addr in addresses]