""" 파일 관리 API main.py에서 분리된 파일 관련 엔드포인트들 """ from fastapi import APIRouter, Depends from sqlalchemy import text from sqlalchemy.orm import Session from typing import Optional from ..database import get_db from ..utils.logger import get_logger from ..schemas import FileListResponse, FileDeleteResponse, FileInfo from ..services.file_service import get_file_service router = APIRouter() logger = get_logger(__name__) @router.get("/files", response_model=FileListResponse) async def get_files( job_no: Optional[str] = None, show_history: bool = False, use_cache: bool = True, db: Session = Depends(get_db) ) -> FileListResponse: """파일 목록 조회 (BOM별 그룹화)""" file_service = get_file_service(db) # 서비스 레이어 호출 files, cache_hit = await file_service.get_files(job_no, show_history, use_cache) return FileListResponse( success=True, message="파일 목록 조회 성공" + (" (캐시)" if cache_hit else ""), data=files, total_count=len(files), cache_hit=cache_hit ) @router.delete("/files/{file_id}", response_model=FileDeleteResponse) async def delete_file( file_id: int, db: Session = Depends(get_db) ) -> FileDeleteResponse: """파일 삭제""" file_service = get_file_service(db) # 서비스 레이어 호출 result = await file_service.delete_file(file_id) return FileDeleteResponse( success=result["success"], message=result["message"], deleted_file_id=result["deleted_file_id"] )