from fastapi import APIRouter, Depends from app.api.dependencies import get_upload_service from app.schemas.file import FileSummary from app.schemas.upload import FinalizeUploadRequest, FinalizeUploadResponse, UploadSummary from app.services.upload_service import FinalizeUploadInput, UploadService router = APIRouter() @router.post("/{upload_id}/finalize", response_model=FinalizeUploadResponse) async def finalize_upload( upload_id: str, payload: FinalizeUploadRequest, service: UploadService = Depends(get_upload_service), ) -> FinalizeUploadResponse: upload_session, file_entry = await service.finalize_upload( upload_id, FinalizeUploadInput(directory_id=payload.directory_id, filename=payload.filename), ) return FinalizeUploadResponse( upload=UploadSummary.model_validate(upload_session, from_attributes=True), file=FileSummary.model_validate(file_entry, from_attributes=True), )