# -*- coding: utf-8 -*-
"""
配风计划审查接口 —— PDF 上传 + SSE 流式
"""

from fastapi import APIRouter, File, Form, UploadFile
from fastapi.responses import StreamingResponse

from agents.review_agent import stream_review

router = APIRouter()


@router.post("/vent/review/pdf")
async def api_review(
    file: UploadFile = File(),
    session_id: str | None = Form(default=None),
    message: str | None = Form(default=None),
    force_refresh: bool = Form(default=False),
):
    """配风计划审查接口（SSE 流式）

    用户上传配风计划 PDF 文件，系统自动进行审查：
    1. 基本形式审查（版本、签字、编制时间、计算过程完整性、语病逻辑）
    2. 数据一致性审查（用风地点完整性、瓦斯/CO2一致性、工作面参数、风速温度匹配）
    3. 计算核验过程（逐地点核验需风量计算）

    3个子智能体并行审查，结果汇总后流式返回。

    请求体: multipart/form-data
    - file: PDF 文件
    - session_id: 可选，会话ID
    - message: 可选，附加消息
    - force_refresh: 可选，是否强制重新提取（忽略缓存），默认 False

    响应: SSE 流（text/event-stream）
    """
    return StreamingResponse(
        stream_review(file, message, session_id, force_refresh),
        media_type="text/event-stream",
        headers={
            "Cache-Control": "no-cache",
            "Connection": "keep-alive",
            "X-Accel-Buffering": "no",
            "X-Session-Id": session_id or "",
        },
    )
