docs(creator): 채널 홈 탭 채팅 계획을 보완한다
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
- `라이브`, `오디오`, `시리즈`, `커뮤니티`, `팬Talk`, `후원` 탭을 선택했을 때의 탭별 상세 페이지와 pagination은 이번 범위에서 제외한다.
|
||||
- `Frame 1707482896`과 그 하위 레이어 중 `홈` 탭 첫 화면 구성에 필요한 데이터 표시 외 세부 상호작용은 이번 범위에서 제외한다.
|
||||
- 팔로우/언팔로우, 알림 켜기/끄기 API는 신규 API를 만들지 않고 기존 크리에이터 팔로우 API를 사용한다.
|
||||
- `대화하기`는 기존 AI 채팅 `ChatRoomActivity`로 이동하고, `DM 보내기`는 신규 `DmChatRoomActivity`로 이동한다. 각 화면 내부 동작 변경은 이번 범위에서 제외한다.
|
||||
- `대화하기`는 기존 `TalkApi.createChatRoom`으로 채팅방을 생성/조회한 뒤 반환된 `chatRoomId`로 `ChatRoomActivity`에 진입하고, `DM 보내기`는 신규 `DmChatRoomActivity`로 이동한다. 각 화면 내부 동작 변경은 이번 범위에서 제외한다.
|
||||
- 기존 크리에이터 랭킹 페이지, 채팅 탭, DM 채팅방 상세 화면의 동작을 변경하지 않는다.
|
||||
- Figma에 표시된 iOS status bar 컴포넌트 자체를 Android에 그대로 구현하지 않는다. Android system bar/inset 정책에 맞춰 이미지 확장 요구만 반영한다.
|
||||
|
||||
@@ -107,6 +107,7 @@ data class CreatorChannelHomeResponse(
|
||||
|
||||
data class CreatorChannelCreatorResponse(
|
||||
val creatorId: Long,
|
||||
val characterId: Long?,
|
||||
val nickname: String,
|
||||
val profileImageUrl: String,
|
||||
val followerCount: Int,
|
||||
@@ -219,8 +220,9 @@ data class CreatorChannelSnsResponse(
|
||||
#### Requirements
|
||||
- `creatorId`는 페이지 진입 인자로 전달받고, `creatorId > 0`일 때만 홈 API를 호출한다.
|
||||
- `creator.nickname`, `creator.profileImageUrl`, `creator.followerCount`를 크리에이터 이미지 영역의 기본 정보로 사용한다.
|
||||
- `creator.characterId`는 `대화하기` 버튼 터치 시 `TalkApi.createChatRoom` 요청의 `characterId`로 사용한다.
|
||||
- `creator.isFollow`, `creator.isNotify`를 title bar 팔로우/알림 상태 표시의 기준으로 사용한다.
|
||||
- `creator.isAiChatAvailable`이 `true`일 때만 `대화하기` 버튼을 표시한다.
|
||||
- `creator.isAiChatAvailable`이 `true`이고 `creator.characterId`가 null이 아닐 때만 `대화하기` 버튼을 표시한다.
|
||||
- `creator.isDmAvailable`이 `true`일 때만 `DM 보내기` 버튼을 표시한다.
|
||||
- 홈 탭 영역은 `CreatorChannelHomeResponse`의 top-level 필드를 사용해 Figma 홈 구성에 맞춰 표시한다.
|
||||
- nullable 필드인 `currentLive`, `latestAudioContent`, `coverImageUrl`, `imageUrl`, `audioUrl`, `latestFanTalk`, `debutDateUtc`, `languageCode`, `duration`, `seriesName`, `isOriginalSeries`는 null 가능성을 전제로 UI 표시 여부를 결정한다.
|
||||
@@ -267,9 +269,9 @@ data class CreatorChannelSnsResponse(
|
||||
- 두 버튼이 모두 보일 때는 Figma `296:14892`의 버튼 영역 배치를 따른다.
|
||||
- 두 버튼 중 하나만 보일 때는 해당 버튼을 가운데 표시한다.
|
||||
- 두 버튼이 모두 보이지 않더라도 버튼 영역의 높이와 여백은 보존한다.
|
||||
- `대화하기` 버튼은 `creator.isAiChatAvailable=true`일 때 표시한다.
|
||||
- `대화하기` 버튼은 `creator.isAiChatAvailable=true`이고 `creator.characterId`가 null이 아닐 때 표시한다.
|
||||
- `DM 보내기` 버튼은 `creator.isDmAvailable=true`일 때 표시한다.
|
||||
- `대화하기` 버튼 터치 시 기존 AI 채팅 `ChatRoomActivity`로 이동한다.
|
||||
- `대화하기` 버튼 터치 시 `TalkApi.createChatRoom`에 `CreateChatRoomRequest(characterId)`를 전달하고, 성공 응답의 `chatRoomId`를 사용해 `ChatRoomActivity.newIntent(context, roomId)`로 이동한다.
|
||||
- `DM 보내기` 버튼 터치 시 신규 `DmChatRoomActivity`로 이동한다.
|
||||
|
||||
#### Edge Cases
|
||||
@@ -356,7 +358,7 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- tab-bar sticky 동작은 기존 화면의 app bar/collapsing/header scroll 구현 패턴이 있으면 우선 재사용한다.
|
||||
- 홈 API는 `GET /api/v2/creator-channels/{creatorId}/home` 계약을 따른다.
|
||||
- 팔로우/알림 변경은 기존 크리에이터 팔로우 API 사용 패턴을 재사용한다.
|
||||
- `대화하기` 이동은 기존 AI 채팅 `ChatRoomActivity` 사용 패턴을 따른다.
|
||||
- `대화하기` 이동은 `CharacterDetailViewModel.createChatRoom`과 동일하게 `TalkApi.createChatRoom` 호출 후 `ChatRoomActivity`로 이동하는 패턴을 따른다.
|
||||
- `DM 보내기` 이동은 신규 `DmChatRoomActivity` 사용 패턴을 따른다.
|
||||
- `RecommendedActivityType`을 `CreatorActivityType`으로 변경하고 공용 패키지로 이동할 때, 홈 추천 API의 기존 참조도 함께 갱신한다.
|
||||
- navigation extra 이름, analytics/logging은 근거 파일이나 별도 요구가 확인되기 전까지 임의로 추가하지 않는다.
|
||||
@@ -372,9 +374,9 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- `대화하기`, `DM 보내기` 버튼이 모두 보일 때 Figma 기준 배치를 따른다.
|
||||
- `대화하기`, `DM 보내기` 버튼 중 하나만 보일 때 해당 버튼이 가운데 표시된다.
|
||||
- `대화하기`, `DM 보내기` 버튼이 모두 보이지 않아도 버튼 영역 높이와 여백이 보존된다.
|
||||
- `creator.isAiChatAvailable=true`일 때만 `대화하기` 버튼이 표시된다.
|
||||
- `creator.isAiChatAvailable=true`이고 `creator.characterId`가 null이 아닐 때만 `대화하기` 버튼이 표시된다.
|
||||
- `creator.isDmAvailable=true`일 때만 `DM 보내기` 버튼이 표시된다.
|
||||
- `대화하기` 버튼 터치 시 `ChatRoomActivity`로 이동한다.
|
||||
- `대화하기` 버튼 터치 시 `TalkApi.createChatRoom`을 호출하고, 성공 응답의 `chatRoomId`로 `ChatRoomActivity`에 이동한다.
|
||||
- `DM 보내기` 버튼 터치 시 `DmChatRoomActivity`로 이동한다.
|
||||
- tab-bar에 `홈`, `라이브`, `오디오`, `시리즈`, `커뮤니티`, `팬Talk`, `후원`이 표시된다.
|
||||
- 크리에이터 채널 진입 시 `GET /api/v2/creator-channels/{creatorId}/home`이 호출된다.
|
||||
@@ -415,3 +417,4 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- 2026-06-12: 사용자 추가 제공 요구사항에 따라 이번 범위를 크리에이터 채널 전체 구성과 `홈` 탭으로 한정하고, tab-bar 7개 항목, 홈 API Endpoint, 서버 DTO, 기존 크리에이터 팔로우 API 재사용, `대화하기`/`DM 보내기` 이동 대상, `CreatorActivityType` 공용화, title bar black 전환 기준을 PRD에 반영했다.
|
||||
- 2026-06-12: 이번 단계는 PRD 문서 보완만 수행했으며 구현/빌드/테스트는 실행하지 않았다.
|
||||
- 2026-06-12: 문서 범위가 크리에이터 채널 신규 페이지 전체가 아니라 홈 탭 1차 범위임을 명확히 하기 위해 문서 폴더명을 `docs/20260611_크리에이터_채널_신규_페이지/`에서 `docs/20260611_크리에이터_채널_홈_탭/`으로 변경했다.
|
||||
- 2026-06-12: 사용자 추가 요구사항에 따라 `CreatorChannelCreatorResponse.characterId: Long?`를 추가하고, `대화하기` 이동을 `TalkApi.createChatRoom` 호출 후 반환된 `chatRoomId`로 `ChatRoomActivity`에 진입하는 흐름으로 변경했다.
|
||||
|
||||
Reference in New Issue
Block a user