Skip to content

[Feat] 취소 강습 재진입 복구 API 보강 #40

Description

@SungKong00

상태: 논의 필요 / PM·Android와 역할별 복구 경로 확정 후 구현

WebSocket 이벤트나 Android 로컬 저장값에 의존하지 않고, REST/DB 기준으로 취소된 강습을 다시 발견할 수 있는 경로를 확정합니다.

📃 기능 설명

소비자 또는 강사가 LESSON_CANCELED WebSocket 이벤트를 놓치거나 앱 프로세스가 종료된 경우에도, 서버 기준으로 취소된 강습을 다시 찾고 역할별 강습 상세 화면을 복구할 수 있도록 API 계약을 보강합니다.

현재 소비자·강사 홈은 CONFIRMED, IN_PROGRESS 강습만 노출합니다. 따라서 취소 이벤트를 놓친 사용자는 상세 조회에 필요한 lessonId를 다시 발견할 수 없습니다.

소비자 홈과 역할별 강습 상세 조회 API 구현은 이미 완료됐으며, 이 이슈에서는 취소 강습의 재발견 경로만 다룹니다.

✅ To-do

복구 계약 결정

  • 소비자 앱 재실행 후 취소된 강습의 lessonId 복구 경로를 확정한다.
  • 강사 앱 재실행 후 취소된 강습의 lessonId 복구 경로를 확정한다.
  • 홈 취소 카드, 최근 강습 조회, 알림/이력 조회, 별도 복구 API를 비교한다.
  • 취소 강습이 0개·1개·여러 개인 경우의 응답과 우선순위를 정의한다.
  • Android 로컬 저장값과 WebSocket/FCM은 보조 수단으로만 사용한다.

구현 및 검증

  • 확정한 REST 복구 경로를 구현한다.
  • 복구한 lessonId로 역할별 상세 API를 호출해 lessonStatus=CANCELEDcancelInfo를 재구성한다.
  • 본인 강습만 조회할 수 있도록 소유자 검증을 적용한다.
  • API 최종 명세서와 Swagger를 반영한다.
  • 역할별 정상 복구, 빈 결과, 다건 우선순위, 이벤트 유실 시나리오 테스트를 추가한다.

🔗 완료된 선행 구현

📝 비범위

  • 기존 홈·강습 상세 API 재구현
  • WebSocket 인프라 및 다중 인스턴스 운영 안정화
  • 전체 알림 목록 API 구현

Metadata

Metadata

Assignees

Labels

✨ FEAT새로운 기능 개발

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions