docs(home): AI 캐릭터 이동 검증을 기록한다
This commit is contained in:
@@ -101,6 +101,7 @@ data class HomeFirstAudioContentItem(
|
||||
|
||||
data class HomeAiCharacterItem(
|
||||
val characterId: Long,
|
||||
val creatorId: Long,
|
||||
val name: String,
|
||||
val description: String,
|
||||
val profileImage: String?,
|
||||
@@ -127,6 +128,8 @@ data class HomePopularCommunityPostItem(
|
||||
#### Changed Item Requirements
|
||||
- `HomeFirstAudioContentItem.price`는 첫 오디오 콘텐츠의 무료 여부 표시 정책에 사용한다.
|
||||
- `HomeFirstAudioContentItem.isPointAvailable`은 첫 오디오 콘텐츠 카드 바인딩 시 포인트 사용 가능 표시 정책에 반영한다.
|
||||
- `HomeAiCharacterItem.creatorId`는 `크리에이터와 이야기를 나눠요!` 섹션 item 터치 시 크리에이터 채널 이동 값으로 사용한다.
|
||||
- `HomeAiCharacterItem.characterId`는 `CharacterChatThumbnailView` 표시 모델의 캐릭터 식별 값으로 유지하되, 추천 홈 item 터치 목적지로는 사용하지 않는다.
|
||||
- `HomeAiCharacterItem.profileImage`는 `CharacterChatThumbnailView`의 실제 이미지 URL로 사용한다.
|
||||
- `HomeAiCharacterItem.originalWorkTitle`이 null이면 기존 `CharacterChatThumbnailView`의 원작 없음 표시 정책에 맞춰 원작 영역을 유지하거나 숨기는 방식을 구현 계획에서 확정한다.
|
||||
- `HomePopularCommunityPostItem.postId`는 커뮤니티 게시글 이동/식별 값으로 사용한다.
|
||||
@@ -328,6 +331,8 @@ HomeRecommendation 화면
|
||||
- `HomeAiCharacterItem.profileImage`가 null이면 호출부 이미지 로딩 정책에 따라 placeholder 또는 빈 상태를 표시한다.
|
||||
- `HomePopularCommunityPostItem.imageUrl` 또는 `audioUrl`이 null이어도 커뮤니티 feed는 본문/반응 수 중심으로 표시 가능해야 한다.
|
||||
- 유료 미구매 포스트의 가격 capsule은 `price` 값을 사용하고, 유료 구매 완료 또는 무료 포스트에는 가격 capsule을 표시하지 않는다.
|
||||
- `HomeAiCharacterItem.creatorId <= 0`이면 `크리에이터와 이야기를 나눠요!` item 터치 시 이동하지 않는다.
|
||||
- `크리에이터와 이야기를 나눠요!` item 터치 시 `CharacterDetailActivity`가 아니라 `CreatorChannelActivity`로 이동한다.
|
||||
- `HomeBannerItem`은 `type` 없이 `eventItem`, `creatorId`, `seriesId`, `link` 값 기준으로 이동한다.
|
||||
- 배너 이동 우선순위는 `eventItem`, `creatorId`, `seriesId`, `link` 순서로 처리한다.
|
||||
- `link`가 웹 URL이면 `Intent.ACTION_VIEW`를 사용해 외부 웹 URL로 이동한다.
|
||||
@@ -351,6 +356,7 @@ HomeRecommendation 화면
|
||||
- 커뮤니티 본문과 사업자 정보는 긴 텍스트가 화면 폭을 밀어내지 않아야 한다.
|
||||
- 사업자 정보는 기본 3줄만 보여 홈 탐색을 방해하지 않고, 사용자가 원할 때 전체 내용을 확인할 수 있어야 한다.
|
||||
- 터치 동작은 UI 컴포넌트 내부에서 목적지를 결정하지 않고 화면/adapter callback으로 위임한다.
|
||||
- `크리에이터와 이야기를 나눠요!` 섹션의 AI 캐릭터 카드는 표시 형태는 유지하되, 터치 결과는 캐릭터 상세가 아닌 해당 크리에이터 채널 진입이어야 한다.
|
||||
|
||||
---
|
||||
|
||||
@@ -378,6 +384,7 @@ HomeRecommendation 화면
|
||||
- `HomeMainFragment`에서 `view_title_bar_home`, `TextTabBarView`, `view_section_title` 재사용이 확인된다.
|
||||
- `FeedCommunityView`에서 keyword 영역이 추천 페이지에 노출되지 않고, 이미지와 유료 미구매 overlay가 표시된다.
|
||||
- `AudioContentCardView`에서 `ic_content_tag_point`, `무료`, `FIRST` 태그가 조건에 맞게 표시되고, `ic_content_tag_original`은 표시되지 않는다.
|
||||
- `HomeAiCharacterItem.creatorId`가 UI model까지 보존되고, AI 캐릭터 item 터치 시 `CreatorChannelActivity`에 `creatorId`가 전달된다.
|
||||
- 제외 대상인 `추천 필모그래피`, `또 다른 모습` 섹션이 화면에 생성되지 않는다.
|
||||
- 모두 팔로우 API success 후 버튼이 `모두 팔로우 완료`와 `ic_new_following` 상태로 변경된다.
|
||||
- 사업자 정보는 기본 3줄 말줄임, 더보기 후 전체 표시, 접기 후 3줄 복귀가 동작한다.
|
||||
@@ -397,7 +404,11 @@ HomeRecommendation 화면
|
||||
---
|
||||
|
||||
## 12. 검증 기록
|
||||
- 2026-06-23: 기존 `CreatorChannelFanTalkFragmentLayoutTest.kt:78` ktlint 줄바꿈 위반을 동작 변경 없이 수정한 뒤 `./gradlew :app:testDebugUnitTest`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`가 모두 BUILD SUCCESSFUL임을 재확인했다. `adb devices` 결과 연결된 Android 기기가 없어 실제 기기 수동 확인은 수행하지 못했고, 해당 수동 확인은 환경 차단으로 계획 문서에 남겼다.
|
||||
- 2026-06-23: Phase 12 검증으로 `./gradlew :app:testDebugUnitTest`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`는 BUILD SUCCESSFUL을 확인했다. `./gradlew :app:ktlintCheck`는 이번 변경 범위 밖의 `CreatorChannelFanTalkFragmentLayoutTest.kt:78` 기존 줄 길이/인자 줄바꿈 위반으로 실패했으며, 해당 파일은 이번 diff에 포함되지 않음을 확인했다.
|
||||
- 2026-06-23: `HomeAiCharacterItem.creatorId` 응답 계약을 실제 DTO/UI model/mapper에 반영하고, `크리에이터와 이야기를 나눠요!` item 터치 시 `CharacterDetailActivity` 대신 `CreatorChannelActivity`로 이동하도록 구현했다. `creatorId <= 0L`은 route를 만들지 않아 이동하지 않고, `characterId`는 `CharacterChatThumbnailItem.characterId` 표시 계약에 유지한다. 관련 RED/GREEN targeted test와 `HomeMainFragmentLayoutTest` 전체 회귀 테스트가 BUILD SUCCESSFUL임을 확인했다.
|
||||
- 2026-06-05: 사용자 추가 요청에 따라 배너 `link`가 내부 딥링크이면 기존 딥링크 실행 정책에 따라 앱 내부 딥링크를 실행하도록 PRD의 사용자 스토리, Edge Cases, Open Questions를 갱신했다. 문서 변경만 수행했으므로 Gradle 검증은 실행하지 않고 문서 재읽기로 확인한다.
|
||||
- 2026-06-23: 사용자 추가 요청에 따라 `HomeAiCharacterItem.creatorId`를 응답 계약에 추가하고, `크리에이터와 이야기를 나눠요!` item 터치 시 `CharacterDetailActivity`가 아니라 `CreatorChannelActivity`로 이동하는 요구사항을 PRD에 반영했다. 문서 변경만 수행했으므로 Gradle 검증은 실행하지 않고 문서 재읽기로 확인한다.
|
||||
- 2026-06-01: `docs/prd/sample-prd.md`와 `docs/agent-guides/work-plan-docs.md`를 확인해 신규 문서 위치와 PRD 작성 형식을 맞췄다.
|
||||
- 2026-06-01: Figma `24:5514`의 최상위 구조를 확인해 `live`, `banner`, `section-title`, `contents`, `chat-thumbnail`, `profile`, `feed`, 사업자 정보 섹션의 배치와 제외 후보 섹션을 PRD에 반영했다.
|
||||
- 2026-06-01: 저장소의 기존 v2 widget 패키지(`banner`, `livethumbnail`, `characterchatthumbnail`, `feed`, `AudioContentCardView`)와 관련 PRD를 확인해 재사용 후보를 문서화했다.
|
||||
|
||||
Reference in New Issue
Block a user