Skip to content

[T-36] 게임 스키마 + 공개 조회 #105

Description

@ff1451

목적

게임 정보(FR-7)를 인터널 CMS 1차 범위로 편입한다. 이번 태스크는 스키마와 공개 조회 API만 다룬다 — 관리자 CRUD(T-37~39), 홈 위젯(T-40)은 후속 PR.

배경

docs/01-requirements.md에 게임 정보(빌드 제외)와 홈 위젯(멘토·Q&A·모집 링크)을 2026-08-30에 1차로 재편입했다. 게임 빌드(Unity WebGL ZIP) 업로드·압축해제·서빙은 ADR-023으로 방향(홈페이지 OCI 서버 로컬 디스크 + 자체 서빙, S3/Lambda 미도입)만 정하고 별도 태스크(T-41)로 분리했다.

작업 내용

  • V15__create_game.sqlgame/game_screenshot/game_rating/game_build/game_member
  • Game, GameScreenshot, GameRating, GameBuild, GameMember 엔티티 + 리포지토리
  • GET /v1/games, GET /v1/games/{slug}SecurityConfig에 permitAll 추가
  • 공개 응답의 참여 멤버는 명부 status=ACTIVE만 결합
  • game_build는 메타데이터만 — build_file_url은 실제 파이프라인이 붙기 전까지 null (ADR-023 §범위)

테스트 (ADR-019)

GameIntegrationTest 7개 —

  • AC-9.3 공개 목록은 공개 게임만 display_order 순, 숨김은 404
  • AC-9.10 활성 빌드 없으면 activeBuild null이고 500 아님, 있으면 버전·상태 노출
  • AC-9.14 탈퇴한 참여 멤버는 공개 응답에서 제외
  • INV-18 삭제되지 않은 게임의 slug 유일성(DB 제약)

참고

  • docs/02-acceptance-criteria.md AC-9, INV-18~22
  • docs/04-architecture.md ADR-023
  • docs/05-api-spec.md §1.3, §3
  • docs/07-task-breakdown.md T-36

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions