docs(creator): 채널 홈 탭 계획을 갱신한다
This commit is contained in:
@@ -215,8 +215,19 @@ data class CreatorChannelSnsResponse(
|
||||
val youtubeUrl: String,
|
||||
val kakaoOpenChatUrl: String
|
||||
)
|
||||
|
||||
enum class CreatorActivityType(val code: String) {
|
||||
LIVE("LIVE"),
|
||||
AUDIO("AUDIO"),
|
||||
COMMUNITY("COMMUNITY"),
|
||||
LIVE_REPLAY("LIVE_REPLAY")
|
||||
}
|
||||
```
|
||||
|
||||
- 백엔드 `CreatorActivityType` 원본 enum은 `LIVE`, `AUDIO`, `COMMUNITY`, `LIVE_REPLAY` 대문자 상수와 동일한 `code`를 내려준다.
|
||||
- Android DTO의 `CreatorChannelScheduleResponse.type`은 위 서버 계약을 전제로 공용 `CreatorActivityType` enum을 직접 사용한다.
|
||||
- 홈 추천 등 클라이언트 내부 helper에서 대소문자 무시 파싱을 지원하더라도, 크리에이터 채널 홈 API DTO 리뷰에서는 서버가 소문자/혼합 대소문자 값을 내려주는 경우를 별도 전제로 문제 제기하지 않는다.
|
||||
|
||||
#### Requirements
|
||||
- `creatorId`는 페이지 진입 인자로 전달받고, `creatorId > 0`일 때만 홈 API를 호출한다.
|
||||
- `creator.nickname`, `creator.profileImageUrl`, `creator.followerCount`를 크리에이터 이미지 영역의 기본 정보로 사용한다.
|
||||
@@ -357,6 +368,7 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- system bar 영역 확장은 Android edge-to-edge/inset 처리와 기존 앱의 status bar 정책을 확인한 뒤 적용한다.
|
||||
- tab-bar sticky 동작은 기존 화면의 app bar/collapsing/header scroll 구현 패턴이 있으면 우선 재사용한다.
|
||||
- 홈 API는 `GET /api/v2/creator-channels/{creatorId}/home` 계약을 따른다.
|
||||
- 홈 API의 schedule `type`은 백엔드 `CreatorActivityType` 원본 enum과 동일하게 `LIVE`, `AUDIO`, `COMMUNITY`, `LIVE_REPLAY` 중 하나로 내려오므로 Android DTO에서 공용 enum을 직접 사용한다.
|
||||
- 팔로우/알림 변경은 기존 크리에이터 팔로우 API 사용 패턴을 재사용한다.
|
||||
- `대화하기` 이동은 `CharacterDetailViewModel.createChatRoom`과 동일하게 `TalkApi.createChatRoom` 호출 후 `ChatRoomActivity`로 이동하는 패턴을 따른다.
|
||||
- `DM 보내기` 이동은 신규 `DmChatRoomActivity` 사용 패턴을 따른다.
|
||||
@@ -418,3 +430,10 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- 2026-06-12: 이번 단계는 PRD 문서 보완만 수행했으며 구현/빌드/테스트는 실행하지 않았다.
|
||||
- 2026-06-12: 문서 범위가 크리에이터 채널 신규 페이지 전체가 아니라 홈 탭 1차 범위임을 명확히 하기 위해 문서 폴더명을 `docs/20260611_크리에이터_채널_신규_페이지/`에서 `docs/20260611_크리에이터_채널_홈_탭/`으로 변경했다.
|
||||
- 2026-06-12: 사용자 추가 요구사항에 따라 `CreatorChannelCreatorResponse.characterId: Long?`를 추가하고, `대화하기` 이동을 `TalkApi.createChatRoom` 호출 후 반환된 `chatRoomId`로 `ChatRoomActivity`에 진입하는 흐름으로 변경했다.
|
||||
|
||||
- 2026-06-13: Phase 2/3 구현으로 `RecommendedActivityType`을 공용 `CreatorActivityType`으로 이동하고 홈 추천 참조를 갱신했으며, 크리에이터 채널 홈 API/DTO/Repository와 Koin API/Repository 등록을 추가했다.
|
||||
- 2026-06-13: `CreatorChannelCreatorResponse.characterId: Long?`, `CreatorChannelScheduleResponse.type: CreatorActivityType`, `GET /api/v2/creator-channels/{creatorId}/home` 계약이 구현 DTO/API에 반영됨을 테스트와 컴파일로 확인했다.
|
||||
- 2026-06-13: 검증으로 `v2.common.*`, `v2.creatorchannel.*`, `compileDebugKotlin`, `mergeDebugResources`, `ktlintCheck`는 성공했다. `v2.main.home.*` 전체 실행은 기존 source-path 테스트의 `FileNotFoundException`으로 일부 실패했으며, 타입 공용화 관련 focused 홈 테스트는 성공했다.
|
||||
- 2026-06-13: 백엔드 `CreatorActivityType` 원본 enum이 `LIVE`, `AUDIO`, `COMMUNITY`, `LIVE_REPLAY` 대문자 상수와 동일한 `code`를 사용함을 확인해 Android Gson enum 파싱용 별도 TypeAdapter는 추가하지 않기로 판단했다.
|
||||
- 2026-06-13: 사용자 추가 요청에 따라 신규 크리에이터 채널 홈 패키지를 `kr.co.vividnext.sodalive.v2.creatorchannel`에서 `kr.co.vividnext.sodalive.v2.creator.channel`로 변경했다.
|
||||
- 2026-06-13: 사용자 확인에 따라 백엔드 `CreatorActivityType` 원본 enum과 동일한 대문자 code 계약을 API 계약/기술 제약에 명시했다. 이후 코드리뷰에서는 별도 서버 계약 변경 근거가 없는 한 크리에이터 채널 홈 DTO의 `CreatorActivityType` 직접 사용과 Gson enum TypeAdapter 부재를 대소문자 대응 문제로 제기하지 않는다. 이번 단계는 문서 수정만 수행했으며 빌드/테스트는 실행하지 않았다.
|
||||
|
||||
Reference in New Issue
Block a user