Skip to content

⚙️[기능추가][탐험] 행성/지역 해금 도메인 구현 #27

Description

@Cassiiopeia

📝 현재 문제점

  • 탐험 시스템 관련 도메인이 전혀 구현되어 있지 않음
  • API 스펙상 행성 목록 조회, 지역 목록 조회, 지역 해금, 행성 해금 4개 엔드포인트가 정의되어 있으나 모두 미구현
  • 행성/지역 마스터 데이터(시드)를 DB에 관리해야 함

🛠️ 해결 방안 / 제안 기능

  • 행성(Planet) 및 지역(Region)을 단일 ExplorationNode 테이블로 트리 구조 관리 (nodeType 컬럼으로 구분)
  • GET /api/explorations/planets : 유저 해금 상태와 함께 행성 목록 반환
  • GET /api/explorations/planets/{planetId}/regions : 해당 행성의 지역 목록 + 유저 해금 상태 반환
  • POST /api/explorations/regions/{regionId}/unlock : 연료 소비 후 지역 해금. 행성의 모든 지역 해금 시 자동 행성 클리어
  • POST /api/explorations/planets/{planetId}/unlock : 연료 소비 후 행성 해금
  • 지구는 시드 데이터로 기본 해금 상태 설정

⚙️ 작업 내용

  • ExplorationNode Entity (행성/지역 마스터), UserExploration Entity (유저별 해금 상태) 구현
  • Repository 및 시드 데이터 Flyway 마이그레이션 작성
  • ExplorationService : 목록 조회, 해금 로직 (연료 차감 + 해금 상태 insert + 행성 자동 클리어 판정) 구현
  • FuelService.consume() 연동 (트랜잭션 내에서 원자적 처리)
  • SS-Web/controller/exploration/ExplorationController 구현
  • Flyway 마이그레이션 : exploration_nodes, user_explorations 테이블 + 시드 데이터 추가

🙋‍♂️ 담당자

  • 백엔드: 이름
  • 프론트엔드: 이름
  • 디자인: 이름

Metadata

Metadata

Assignees

Labels

작업완료작업 완료 상태인 경우 (이슈 폐쇄)

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions