T-38 게임 스크린샷 + 등급정보 + 참여 멤버 - #110
Open
ff1451 wants to merge 3 commits into
Open
Conversation
T-37(기본정보 CRUD) 위에 스크린샷 전체 교체, 등급정보 upsert, 참여 멤버
배정을 얹는다. 트랙 페이지의 T-08/T-09/T-18 분리와 같은 경계 — 참여 멤버는
배정/순서 흐름이 따로 있어 AdminGameMemberService로 분리했다(AdminTrackPageMemberService와 동일).
- PUT /v1/admin/games/{id}/screenshots — 전체 교체, 배열 순서가 display_order
- PUT/DELETE /v1/admin/games/{id}/rating — upsert/삭제. contentDescriptors는
7개 boolean 컬럼에 매핑되는 고정 배열(INV-21), 정의되지 않은 키는 400
- POST/DELETE /v1/admin/games/{id}/members, PATCH .../order — 명부 직접 참조
(ADR-012 패턴 재사용), 이름·사진 쓰기 경로 없음(INV-19). 멘토와 달리 게임
참여 멤버는 별도 숨김 토글이 없다(와이어프레임 1b)
- GET /v1/admin/games/{id}가 이제 스크린샷·등급정보·참여멤버까지 포함한 전체
편집 화면 집계를 반환한다(AdminGameDetailResponse 확장)
테스트: AdminGameScreenshotRatingMemberIntegrationTest(신규 6개) —
- AC-9.6 스크린샷 전체 교체 시 display_order 순서 부여
- AC-9.7 contentDescriptors 생략 시 7개 항목 모두 false
- INV-21 정의되지 않은 내용정보 키는 400
- AC-9.8 등급정보 삭제 시 공개 응답 rating이 null
- AC-9.9 명부에 없는 memberId 배정은 404
- 참여 멤버 배정·순서 변경·해제가 공개 응답에 반영, 중복 배정은 409
./gradlew test 전체 통과(160개, 실패 0). 신규 마이그레이션 없음(T-36에서 이미 검증).
Refs #109
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 30, 2026
인터널 프론트에서 게임 썸네일·스크린샷(GAME)과 상세설명 삽입 이미지 (GAME_CONTENT)를 업로드하려면 presigned URL 발급 시 purpose enum에 값이 있어야 한다. image_asset.purpose는 varchar(30)이라 마이그레이션은 필요 없다.
game.thumbnailUrl 컬럼·응답 필드는 T-36부터 있었지만 그 값을 쓰는 API가 전혀 없었다 — 인터널 프론트(T-43) 작업 중 발견. 활동 사진의 INV-12(첫 장 = 썸네일)와 같은 규약으로, 별도 업로드 엔드포인트를 만들지 않고 스크린샷 전체 교체가 항상 첫 번째 스크린샷으로 맞추게 했다.
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.
요약
T-37 PR(#108) 위에 스택한다 — T-37이 아직 머지되지 않아 base를
feat/t37-game-admin-crud로 잡았다. 트랙 페이지의 T-08/T-09/T-18 분리와 같은 경계.변경 사항
PUT /v1/admin/games/{id}/screenshots— 전체 교체, 배열 순서가display_orderPUT/DELETE /v1/admin/games/{id}/rating— upsert/삭제.contentDescriptors는 7개 boolean 컬럼에 매핑되는 고정 배열(INV-21), 정의되지 않은 키는 400POST/DELETE /v1/admin/games/{id}/members,PATCH .../order— 명부 직접 참조(ADR-012 패턴 재사용), 이름·사진 쓰기 경로 없음(INV-19). 멘토와 달리 게임 참여 멤버는 별도 숨김 토글이 없다(와이어프레임 1b)GET /v1/admin/games/{id}가 이제 스크린샷·등급정보·참여멤버까지 포함한 전체 편집 화면 집계를 반환(AdminGameDetailResponse확장 —AdminTrackPageDetailResponse와 동일한 확장 방식)테스트
AdminGameScreenshotRatingMemberIntegrationTest(신규 6개) —display_order순서 부여contentDescriptors생략 시 7개 항목 모두falserating이nullmemberId배정은 404수동 검증
./gradlew test전체 통과(160개, 실패 0). 신규 마이그레이션 없음(T-36에서 이미 검증).남은 항목
Refs #109