from fastapi import APIRouter, File, Form, UploadFile, Depends from pydantic import BaseModel from typing import List, Optional from services.upload_file.upload import handle_upload_file, handle_process_pdf, handle_to_postgis from api.deps.role_dependency import require_role from database.connection import engine router = APIRouter() @router.post("/file") # async def upload_file(file: UploadFile = File(...), page: Optional[str] = Form(""), sheet: Optional[str] = Form(""), user = Depends(require_role("admin"))): async def upload_file(file: UploadFile = File(...), page: Optional[str] = Form(""), sheet: Optional[str] = Form("")): return await handle_upload_file(file, page, sheet) class PdfRequest(BaseModel): title: str columns: List[str] rows: List[List] @router.post("/process-pdf") async def upload_file(payload: PdfRequest): return await handle_process_pdf(payload) class UploadRequest(BaseModel): title: str rows: List[dict] columns: List[str] @router.post("/to-postgis") async def upload_to_postgis(payload: UploadRequest): return await handle_to_postgis(payload, engine)