from fastapi import APIRouter, File, UploadFile from app.schemas.common import ApiResponse from app.services.import_task_service import create_import_task, list_import_tasks, retry_import_task from app.services.imports_service import get_import_summary router = APIRouter(tags=["imports"]) @router.get("/imports/summary", response_model=ApiResponse) def imports_summary() -> ApiResponse: return ApiResponse(data=get_import_summary()) @router.get("/imports/tasks", response_model=ApiResponse) def import_tasks() -> ApiResponse: return ApiResponse(data=list_import_tasks()) @router.post("/imports/upload", response_model=ApiResponse) async def upload_import(file: UploadFile = File(...)) -> ApiResponse: content = await file.read() task = create_import_task(content, file.filename or "domains.txt") return ApiResponse(message="导入任务已创建", data=task) @router.post("/imports/tasks/{task_id}/retry", response_model=ApiResponse) def import_task_retry(task_id: str) -> ApiResponse: task = retry_import_task(task_id) return ApiResponse(message="导入任务已重新加入队列", data=task)