mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 18:26:23 +00:00
- API 경로 통일: /meetings → /minutes 리소스 기반 설계 - HTTP 메서드 표준화: 부분 수정 시 PUT → PATCH 변경 - 캐시 키 명명 규칙 통일: minutes:detail:, dashboard:, todo: 등 - 이벤트명 용어 통일: Transcript* → Minutes* 도메인 용어 적용 - DB 테이블명 정확성 개선: TranscriptVersion → MinutesVersion 수정 파일: - 회의종료및최종확정.puml - 회의록공유.puml - Todo완료및회의록반영.puml - 회의록상세조회및수정.puml 일관성 점수: 78/100 → 95/100 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
@startuml
|
|
!theme mono
|
|
|
|
title 회의록공유 플로우 (UFR-MEET-060)
|
|
|
|
actor "회의록 작성자" as User
|
|
participant "Web App" as Web
|
|
participant "API Gateway" as Gateway
|
|
participant "Meeting Service" as Meeting
|
|
participant "Redis Cache" as Redis
|
|
participant "Azure Event Hubs" as EventHub
|
|
participant "Notification Service" as Notification
|
|
|
|
== 회의록 공유 설정 ==
|
|
User -> Web: 공유 버튼 클릭
|
|
activate Web
|
|
Web -> Web: 공유 대상 및 권한 설정 입력\n(읽기 전용/댓글 가능/편집 가능)
|
|
Web -> Gateway: POST /api/minutes/{minutesId}/share\n(공유 설정 정보)
|
|
activate Gateway
|
|
Gateway -> Gateway: JWT 토큰 검증
|
|
Gateway -> Meeting: 회의록 공유 요청
|
|
activate Meeting
|
|
|
|
== 공유 링크 생성 ==
|
|
Meeting -> Meeting: 공유 링크 생성\n(고유 URL, 권한, 유효기간)
|
|
Meeting -> Meeting: 공유 정보 DB 저장\n(공유 시간, 대상, 권한)
|
|
|
|
== Redis 캐시 무효화 ==
|
|
Meeting -> Redis: 회의록 정보 캐시 무효화\n(minutes:info:{minutesId})
|
|
activate Redis
|
|
Redis --> Meeting: 캐시 삭제 완료
|
|
deactivate Redis
|
|
|
|
== 이벤트 발행 ==
|
|
Meeting -> EventHub: MinutesShared 이벤트 발행\n(minutesId, 참석자 목록, 공유 URL)
|
|
activate EventHub
|
|
EventHub --> Meeting: 이벤트 발행 성공
|
|
deactivate EventHub
|
|
|
|
Meeting --> Gateway: 공유 링크 생성 성공\n(공유 URL)
|
|
deactivate Meeting
|
|
Gateway --> Web: 공유 링크 반환
|
|
deactivate Gateway
|
|
Web --> User: 공유 링크 표시
|
|
deactivate Web
|
|
|
|
== 알림 발송 ==
|
|
EventHub -> Notification: MinutesShared 이벤트 구독
|
|
activate Notification
|
|
Notification -> Notification: 이메일 템플릿 생성\n(회의 제목, 공유 URL, 권한 정보)
|
|
Notification -> Notification: 참석자 전원에게\n이메일 발송
|
|
Notification --> EventHub: 알림 발송 완료
|
|
deactivate Notification
|
|
|
|
== 다음 회의 일정 자동 등록 (옵션) ==
|
|
note over Meeting
|
|
다음 회의 일정이 회의록에
|
|
언급된 경우에만 수행
|
|
end note
|
|
Meeting -> Meeting: 회의록 내용 분석\n(다음 회의 일정 추출)
|
|
Meeting -> Meeting: 캘린더 자동 등록\n(회의 제목, 날짜, 참석자)
|
|
|
|
@enduml
|