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

import java.util.List;

/**
 * 전문용어 설명 UseCase
 * RAG 기반 맥락적 용어 설명 생성
 */
public interface TermExplanationUseCase {

    /**
     * 용어 설명 생성
     *
     * @param term 용어명
     * @param meetingId 회의 ID
     * @param context 현재 회의 맥락 (선택)
     * @return 용어 설명 결과
     */
    TermExplanationResult explainTerm(String term, String meetingId, String context);

    /**
     * 용어 설명 결과
     */
    record TermExplanationResult(
        String term,
        String basicDefinition,
        String contextualMeaning,
        List<String> useCases,
        List<RelatedProject> relatedProjects,
        List<PastDiscussion> pastDiscussions,
        List<Reference> references
    ) {}

    record RelatedProject(String name, String relevance) {}
    record PastDiscussion(java.time.LocalDate date, List<String> participants, String summary, String link) {}
    record Reference(String title, String type, String link) {}
}
