package com.unicorn.hgzero.ai.biz.service;

import com.unicorn.hgzero.ai.biz.domain.Suggestion;
import com.unicorn.hgzero.ai.biz.gateway.LlmGateway;
import com.unicorn.hgzero.ai.biz.usecase.SuggestionUseCase;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 논의사항/결정사항 제안 Service
 * LLM 기반 실시간 회의 제안
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class SuggestionService implements SuggestionUseCase {

    private final LlmGateway llmGateway;

    @Override
    public List<Suggestion> suggestDiscussions(String meetingId, String transcriptText) {
        log.info("Suggesting discussions: meetingId={}", meetingId);

        // TODO: 회의 안건 조회
        List<String> agenda = List.of();

        // LLM을 통한 논의사항 제안
        String llmResponse = llmGateway.suggestDiscussions(transcriptText, agenda);

        // TODO: JSON 파싱 및 Suggestion 리스트 생성
        return List.of(
            Suggestion.builder()
                .id("sugg-001")
                .type(Suggestion.SuggestionType.DISCUSSION)
                .content("보안 요구사항 검토")
                .priority("HIGH")
                .reason("안건에 포함되어 있으나 아직 논의되지 않음")
                .confidence(0.9)
                .relatedAgenda("프로젝트 개요")
                .estimatedTime(15)
                .build()
        );
    }

    @Override
    public List<Suggestion> suggestDecisions(String meetingId, String transcriptText) {
        log.info("Suggesting decisions: meetingId={}", meetingId);

        // LLM을 통한 결정사항 제안
        String llmResponse = llmGateway.suggestDecisions(transcriptText);

        // TODO: JSON 파싱 및 Suggestion 리스트 생성
        return List.of(
            Suggestion.builder()
                .id("dec-001")
                .type(Suggestion.SuggestionType.DECISION)
                .content("React로 프론트엔드 개발")
                .category("기술")
                .participants(List.of("김철수", "이영희"))
                .confidence(0.85)
                .extractedFrom("프론트엔드는 React로 개발하기로 했습니다")
                .context("팀원 대부분이 React 경험이 있어 개발 속도가 빠를 것으로 예상")
                .build()
        );
    }
}
