"""Transcripts API Router"""
from fastapi import APIRouter, HTTPException, status
import logging
from app.models.transcript import ConsolidateRequest, ConsolidateResponse
from app.services.transcript_service import transcript_service

logger = logging.getLogger(__name__)

router = APIRouter()


@router.post("/consolidate", response_model=ConsolidateResponse, status_code=status.HTTP_200_OK)
async def consolidate_minutes(request: ConsolidateRequest):
    """
    회의록 통합 요약

    참석자별로 작성한 회의록을 AI가 통합하여 요약합니다.

    - **meeting_id**: 회의 ID
    - **participant_minutes**: 참석자별 회의록 목록
    - **agendas**: 안건 목록 (선택)
    - **duration_minutes**: 회의 시간(분) (선택)

    Returns:
        - 통합 요약, 키워드, 안건별 분석, Todo 자동 추출
    """
    try:
        logger.info(f"POST /transcripts/consolidate - Meeting ID: {request.meeting_id}")

        # 입력 검증
        if not request.participant_minutes:
            raise HTTPException(
                status_code=status.HTTP_400_BAD_REQUEST,
                detail="참석자 회의록이 비어있습니다"
            )

        # 회의록 통합 처리
        response = await transcript_service.consolidate_minutes(request)

        return response

    except ValueError as e:
        logger.error(f"입력 값 오류: {e}")
        raise HTTPException(
            status_code=status.HTTP_400_BAD_REQUEST,
            detail=str(e)
        )
    except Exception as e:
        logger.error(f"회의록 통합 실패: {e}", exc_info=True)
        raise HTTPException(
            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
            detail=f"회의록 통합 처리 중 오류가 발생했습니다: {str(e)}"
        )
