sequenceDiagram
    participant User as 참석자
    participant WebApp as 웹 애플리케이션
    participant STT as STT Service
    participant Azure as Azure Speech
    participant MQ as RabbitMQ
    participant AI as AI Service<br/>(RAG 통합)
    participant Meeting as Meeting Service
    participant Collab as Collaboration Service
    participant Others as 다른 참석자들

    %% ========================================
    %% Phase 1: 실시간 음성 변환
    %% ========================================
    Note over User,Azure: Phase 1: 실시간 음성 → 텍스트 변환

    User->>WebApp: 발언 (음성)
    WebApp->>STT: 음성 데이터 스트리밍

    activate STT
    STT->>Azure: 음성-텍스트 변환 요청
    Azure-->>STT: 변환된 텍스트<br/>(화자, 타임스탬프)
    STT->>STT: 텍스트 세그먼트 저장<br/>(STT DB)
    deactivate STT

    %% 5초마다 이벤트 발행
    STT->>MQ: TranscriptReady 이벤트<br/>(5초 간격 배치)

    %% ========================================
    %% Phase 2: AI 처리 (병렬)
    %% ========================================
    Note over MQ,AI: Phase 2: AI 분석 (병렬 처리)

    MQ->>AI: TranscriptReady 구독

    activate AI

    par 회의록 내용 정리
        AI->>AI: 1. 발언 내용 분석<br/>(LLM)
        AI->>AI: 2. 주제별 분류
        AI->>AI: 3. 핵심 내용 요약
        AI->>AI: 4. 구조화된 회의록 생성
    and 전문용어 추출
        AI->>AI: 5. 전문용어 자동 감지<br/>(NLP)
        AI->>AI: 6. 벡터 임베딩 생성
        AI->>AI: 7. 맥락 기반 설명 생성<br/>(LLM)
    and 관련 자료 검색
        AI->>AI: 8. 유사도 기반 문서 검색<br/>(관련도 70%+)
        AI->>AI: 9. 관련 회의록 검색<br/>(최대 5개)
        AI->>AI: 10. 참고 자료 링크 생성
    end

    deactivate AI

    %% ========================================
    %% Phase 3: 데이터 저장
    %% ========================================
    Note over AI,Meeting: Phase 3: 데이터 저장

    AI->>AI: AI 처리 결과 저장<br/>(AI DB)

    AI->>MQ: TranscriptSummaryCreated<br/>이벤트 발행

    MQ->>Meeting: TranscriptSummaryCreated<br/>구독

    activate Meeting
    Meeting->>Meeting: 회의록 데이터 저장<br/>(Meeting DB):
    Note right of Meeting: - 정리된 회의록<br/>- 전문용어 목록<br/>- 관련 자료 링크<br/>- 타임스탬프
    deactivate Meeting

    %% ========================================
    %% Phase 4: 실시간 동기화 (결과 표시)
    %% ========================================
    Note over Meeting,Others: Phase 4: 처리 결과 실시간 동기화

    Meeting->>Collab: 회의록 업데이트 요청<br/>(REST API)

    activate Collab
    Collab->>WebApp: 통합 결과 Push<br/>(WebSocket):
    Note right of Collab: - 정리된 회의록<br/>- 전문용어 + 설명<br/>- 관련 자료 링크
    Collab->>Others: 통합 결과 Push<br/>(WebSocket)
    deactivate Collab

    %% ========================================
    %% Phase 5: 화면 표시
    %% ========================================
    Note over WebApp,Others: Phase 5: 통합 화면 표시

    activate WebApp
    WebApp->>WebApp: UI 업데이트:
    Note right of WebApp: 1. 정리된 회의록<br/>2. 전문용어 하이라이트<br/>3. 용어 설명 팝업<br/>4. 관련 자료 사이드바
    WebApp->>User: 통합 화면 표시
    deactivate WebApp

    activate Others
    Others->>Others: 동일한 UI 업데이트
    Others->>Others: 통합 화면 표시
    deactivate Others

    %% ========================================
    %% 성능 요약
    %% ========================================
    Note over User,Others: 전체 프로세스 성능 목표<br/>- 음성 → 텍스트: < 2초<br/>- AI 처리: < 10초<br/>- 저장 및 동기화: < 2초
