hgzero/design/backend/sequence/outer/Todo완료및회의록반영.puml
kimjh 18f2416414 외부 시퀀스 설계 일관성 개선
- 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>
2025-10-22 17:26:57 +09:00

62 lines
1.9 KiB
Plaintext

@startuml Todo완료및회의록반영
!theme mono
title Todo 완료 및 회의록 반영 플로우
actor "담당자" as User
participant "Web App" as Web
participant "API Gateway" as Gateway
participant "Meeting Service" as Meeting
participant "Redis Cache" as Redis
participant "Notification Service" as Notification
autonumber
== Todo 완료 처리 ==
User -> Web: Todo 완료 버튼 클릭
activate Web
Web -> Gateway: PATCH /api/todos/{todoId}/complete\n(userId, userName, completedAt)
activate Gateway
Gateway -> Meeting: PATCH /todos/{todoId}/complete\n(userId, userName, completedAt)
activate Meeting
Meeting -> Meeting: Todo 상태 업데이트\n- 완료 시간 기록\n- 완료자 정보 저장\n- 상태: COMPLETED
Meeting -> Meeting: 관련 회의록에 완료 상태 반영\n- 회의록 섹션 업데이트\n- 완료 표시 (체크 아이콘)\n- 완료 시간 및 완료자 기록
Meeting -> Meeting: DB에 저장
== 캐시 무효화 ==
Meeting --> Redis: DELETE dashboard:{assigneeId}
note right
대시보드 캐시 무효화
end note
Meeting --> Redis: DELETE minutes:detail:{minutesId}
note right
회의록 상세 캐시 무효화
end note
== 이벤트 발행 ==
Meeting -> Notification: TodoCompleted 이벤트 발행\n(todoId, meetingId, completedBy,\ncompletedAt, meetingCreatorId)
note right
Azure Event Hubs를 통한
비동기 이벤트 발행
end note
Meeting --> Gateway: 200 OK\n{todoId, status: COMPLETED,\ncompletedAt, completedBy}
deactivate Meeting
Gateway --> Web: 200 OK\n(Todo 완료 정보)
deactivate Gateway
Web --> User: Todo 완료 표시
deactivate Web
== 알림 발송 ==
activate Notification
Notification -> Notification: TodoCompleted 이벤트 구독
Notification -> Notification: 알림 메시지 생성\n- 수신자: 회의록 작성자\n- 내용: "Todo 완료됨"
Notification --> Notification: 이메일 발송\n(회의록 작성자에게)
note right
외부 Email Service 연동
end note
deactivate Notification
@enduml