feat: 업무카드 담당자 지정·변경 API 구현 - #143
Merged
Merged
Conversation
12 tasks
hywznn
marked this pull request as ready for review
August 12, 2026 02:27
Contributor
Author
BcKmini
approved these changes
Aug 12, 2026
Member
|
굳굳 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
Case 상세 화면의 담당자 변경 기능은 후보 목록만 조회할 수 있고, 선택한 담당자를 Server에 저장할 API와 컬럼이 없었습니다.
무엇이 바뀌나요?
task.assignee_id와 tenant-aware 복합 FK를 V42로 추가했습니다.created_by로 보정합니다.PATCH /api/v1/tasks/{taskId}/assignee를 추가했습니다.ACTIVE상태인ADMIN·HR만 담당자로 지정할 수 있습니다.ADMIN·HR이어야 하며expected_version으로 동시 수정을 막습니다.TASK_ASSIGNEE_CHANGED감사로그를 남깁니다.어떻게 검증했나요?
./gradlew clean test./gradlew build/health와 Swagger UI 확인검증 결과:
BUILD SUCCESSFULBUILD SUCCESSFULTest and build성공보안·개인정보
company_id범위를 검사합니다.request_id로 추적됩니다.Proposed로 작성했습니다.감사로그에는 이메일이나 표시명이 아니라 변경 전·후 사용자 ID만 기록합니다.
API·DB·운영 영향
병합 전 필수 확인
current_task.task_id한 건을 변경하는 방식인지 확인합니다.V43이 먼저 배포되면 뒤늦은 V42가 정상 적용되지 않을 수 있으므로, 이 PR을 먼저 병합한 뒤 #135의 V43을 병합합니다. 롤백이 필요하면 기존 코드를 되돌리되 컬럼은 유지하고 후속 migration으로 정리합니다.
화면 또는 응답 예시
{ "assignee_id": "7e2722bb-3c72-4aa0-b37c-28931c4f8e53", "expected_version": 3 }응답의 Task 상세에는 다음 값이 포함됩니다.
{ "assignee": { "user_id": "7e2722bb-3c72-4aa0-b37c-28931c4f8e53", "display_name": "담당자 B" }, "version": 4 }