Minseo-Jo 79036128ec feat: Meeting Service AI 통합 API 개발 완료
## 구현 내용
- 참석자별 회의록 조회 API (GET /api/meetings/{meetingId}/ai/participant-minutes)
- 안건별 섹션 조회 API (GET /api/meetings/{meetingId}/ai/agenda-sections)
- 회의 통계 조회 API (GET /api/meetings/{meetingId}/ai/statistics)

## DB 스키마 변경
- V4 마이그레이션: agenda_sections 테이블에 todos JSON 컬럼 추가
- AI가 추출한 Todo를 안건별로 저장하는 구조

## 주요 특징
- AI Service가 한 번에 요약 + Todo 추출
- 프로토타입 기반 요구사항 반영 (불필요한 통계 제거)
- Todo 수를 agenda_sections의 todos 컬럼에서 집계

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 14:22:59 +09:00
..
2025-10-27 13:31:58 +09:00

notification 메일 알림발송

아래와 같이 메일발송 Email List를 loop돌려서 event 객체를 생성한 후에 publishNotificationRequest 메소드를 통해 Event 메세지 발행하시면 됩니다.

        // 각 참석자에게 개별 알림 이벤트 발행
        for (String participantEmail : participants) {
            NotificationRequestEvent event = NotificationRequestEvent.builder()
                    .notificationType("MEETING_INVITATION")
                    .recipientEmail(participantEmail)
                    .recipientId(participantEmail)
                    .recipientName(participantEmail)
                    .title("회의 초대")
                    .message(String.format("'%s' 회의에 초대되었습니다. 일시: %s, 장소: %s",
                            title, startTime, location))
                    .relatedEntityId(meetingId)
                    .relatedEntityType("MEETING")
                    .requestedBy(organizerId)
                    .requestedByName(organizerName)
                    .eventTime(LocalDateTime.now())
                    .build();

            publishNotificationRequest(event);
        }