feat(home): 크리에이터 채널 홈 정책을 보강한다
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
- 공지, 커뮤니티 게시글은 홈 노출에 필요한 게시글 요약 필드를 제공한다.
|
||||
- 채널 후원은 최신순 8개를 내려준다.
|
||||
- 오디오 콘텐츠는 최근 업로드 기준 최대 9개를 내려주고, 예약 업로드 전 콘텐츠는 일반 오디오 목록에는 포함하지 않는다.
|
||||
- 크리에이터가 상단 고정한 오디오 콘텐츠는 최대 9개까지 관리하고, 홈 오디오 목록에서 일반 콘텐츠보다 먼저 노출한다.
|
||||
- 시리즈는 최대 8개를 내려주고, 해당 시리즈에 속한 콘텐츠의 최신 공개일 기준으로 정렬한다.
|
||||
- 팬 Talk는 가장 최근에 남긴 팬 Talk 1개와 전체 팬 Talk 개수를 함께 내려준다.
|
||||
- 활동 지수와 SNS는 `ExplorerService.getCreatorDetail`의 계산/필드 의미를 기준으로 확장한다.
|
||||
@@ -181,6 +182,13 @@
|
||||
#### Requirements
|
||||
- 최근 업로드된 오디오 콘텐츠를 최대 9개 내려준다.
|
||||
- 신규 오디오 콘텐츠 영역과 오디오 목록 영역의 첫 번째 항목이 겹치지 않도록, 오디오 목록에서는 Feature D의 `latestAudioContent`로 내려간 가장 최신 콘텐츠를 제외한다.
|
||||
- `latestAudioContent`는 상단 고정 여부와 관계없이 기존처럼 공개 시각 기준 최신 콘텐츠를 내려준다.
|
||||
- `audioContents`는 `PinContent.member.id == creatorId && PinContent.isActive == true`인 콘텐츠를 일반 콘텐츠보다 먼저 내려준다.
|
||||
- 상단 고정 콘텐츠 사이의 정렬은 `PinContent.updatedAt desc`다.
|
||||
- 고정되지 않은 콘텐츠 사이의 정렬은 기존 `AudioContent.releaseDate desc`, `AudioContent.id desc`를 유지한다.
|
||||
- 상단 고정 우선순위를 적용한 뒤 전체 `audioContents`를 최대 9개로 제한한다.
|
||||
- 크리에이터별 활성 상단 고정 콘텐츠는 최대 9개다. 9개가 활성인 상태에서 새 콘텐츠를 고정하면 기존 동작처럼 `PinContent.updatedAt`이 가장 오래된 활성 고정을 교체한다.
|
||||
- 오디오 상세의 `isAvailablePin`은 요청자가 해당 콘텐츠의 크리에이터이고 활성 고정 개수가 9개 미만일 때만 `true`다.
|
||||
- 예약 업로드 전 콘텐츠는 포함하지 않는다.
|
||||
- `releaseDate == null`인 오디오 콘텐츠는 목록, 최신 콘텐츠, 첫 콘텐츠 판정에서 제외한다.
|
||||
- 응답에는 다음 값을 포함한다.
|
||||
@@ -201,6 +209,8 @@
|
||||
#### Edge Cases
|
||||
- 시리즈에 속하지 않은 콘텐츠는 시리즈 관련 필드를 `null`로 내려준다.
|
||||
- 오디오 콘텐츠가 없으면 빈 배열을 내려준다.
|
||||
- `latestAudioContent`가 상단 고정 콘텐츠여도 `audioContents`에 중복 노출하지 않는다.
|
||||
- 비활성 `PinContent`는 고정 우선 정렬에 사용하지 않는다.
|
||||
|
||||
### Feature I. 시리즈
|
||||
|
||||
@@ -332,3 +342,11 @@
|
||||
|
||||
## 11. Open Questions
|
||||
- 없음.
|
||||
|
||||
---
|
||||
|
||||
## 12. Decision Log
|
||||
|
||||
| 날짜 | ID | 상태 | 결정 | 근거 | 영향 범위 |
|
||||
|---|---|---|---|---|---|
|
||||
| 2026-07-30 | `DEC-001` | 확정 | 오디오 상단 고정 한도를 3개에서 9개로 늘리고, `audioContents`에서 활성 고정을 `PinContent.updatedAt desc`로 먼저 노출한 뒤 일반 콘텐츠를 기존 최신순으로 노출한다. `latestAudioContent`의 최신 공개 정책과 공개 API 스키마는 유지한다. | 2026-07-30 `deep-interview` 확정 결과와 기존 `PinContent` 교체 동작 | Feature D, Feature H, `P7-T1`, `P7-T2`, `P7-GATE` |
|
||||
|
||||
Reference in New Issue
Block a user