61 lines
3.5 KiB
Markdown
61 lines
3.5 KiB
Markdown
# PRD: 커뮤니티 딥링크 상세 이동
|
|
|
|
## 문서 정보
|
|
| 항목 | 내용 |
|
|
|---|---|
|
|
| 상태 | 구현 완료, 실제 게시물 UI 확인 제한은 계획에 기록 |
|
|
| 작성일 | 2026-10-13 |
|
|
| 결정권자 | 사용자 |
|
|
| 관련 계획 | [plan-task.md](plan-task.md) |
|
|
| API | 기존 게시글 상세 API 재사용, 계약 변경 없음 |
|
|
| 리뷰 | [phase1-community-post-detail-links.md](reviews/phase1-community-post-detail-links.md) |
|
|
|
|
## 1. Overview
|
|
`voiceon://community?postId=12345`를 실행하면 기존 `CreatorChannelCommunityPostDetailView`에서 해당 게시물을 표시한다.
|
|
|
|
## 2. Problem Statement
|
|
기존 링크는 저장된 사용자 ID를 크리에이터 ID로 사용해 커뮤니티 목록과 댓글 시트를 연다. 게시글 상세를 바로 보여주지 않으며 사용자 ID가 없으면 정상 postId도 처리되지 않는다.
|
|
|
|
## 3. Goals
|
|
- 유효한 postId만으로 해당 게시글 상세 route에 진입한다.
|
|
- postId 누락·잘못된 값이면 현재 화면과 대기 중 이동 상태를 바꾸지 않는다.
|
|
|
|
## 4. Non-Goals
|
|
- 상세 화면 UI, API, 인증·구매·접근 권한 정책 변경.
|
|
- 관련 없는 기존 댓글 화면/상태의 일괄 정리.
|
|
- worktree 생성 또는 다른 브랜치로 전환.
|
|
|
|
## 5. 사용자와 권한
|
|
푸시 탭, 외부 URL, 앱 내 알림 목록의 공통 handler를 사용한다. 게시글 존재 여부와 접근 권한은 기존 상세 API와 화면의 오류 처리를 따른다.
|
|
|
|
## 6. 핵심 흐름과 라우팅
|
|
`community` 링크 → 양수 Int postId 해석 → `.creatorChannelCommunityPostDetail(postId:)` → 기존 상세 화면의 게시글 조회.
|
|
스플래시에서는 기존 pending action 전달을 유지한다. 기존 `post_id` 별칭, 크리에이터 경로형 및 `community_id` 쿼리형은 동일한 postId 상세 이동으로 처리한다.
|
|
|
|
## 7. 기능 요구사항
|
|
| ID | 상태 | 요구사항 | 수용 기준 |
|
|
|---|---|---|---|
|
|
| CD-001 | 확정 | postId로 상세 이동 | 12345 전달 시 상세 route에 정확히 12345 전달, 목록/댓글 시트 호출 없음 |
|
|
| CD-002 | 확정 | 누락·무효 값 거부 | 빈 값, 문자, 0, 음수, Int 범위 초과는 이동 및 pending 변경 없음 |
|
|
| CD-003 | 확정 | 사용자 ID 불필요 | 저장된 사용자 ID 0과 양수 모두 CD-001 성립 |
|
|
| CD-004 | 확정 | 공통 진입점과 시작 대기 유지 | external/notificationList 및 splash 후 apply가 같은 상세 route 생성 |
|
|
| CD-005 | 확정 | 인접 기능 유지 | 기존 선물/콘텐츠 딥링크 검사 통과 |
|
|
|
|
## 8. 기술·운영 제약
|
|
기존 Swift/앱 라우팅과 `work/tests` 하네스를 재사용한다. 신규 의존성·프로젝트 설정 변경 없이 현재 브랜치에서 작업한다. 실제 서버 데이터가 필요한 UI 검증과 독립 실행 가능한 handler 검증을 구분한다.
|
|
|
|
## 9. 성공 기준
|
|
- CD-001~005의 실제 production handler 실행 검사가 통과한다.
|
|
- 변경 Swift 구문/컴파일 검사와 가능한 앱 빌드를 수행하고 실패·환경 제한을 그대로 기록한다.
|
|
- 기기 UI 실행 미확인 상태를 정상 동작 확인으로 보고하지 않는다.
|
|
|
|
## 10. Open Questions
|
|
없음. 사용자 인터뷰로 누락·잘못된 값은 이동하지 않는 것으로 확정했다.
|
|
|
|
## 11. Decision Log
|
|
| 날짜 | 결정 | 근거 |
|
|
|---|---|---|
|
|
| 2026-10-13 | 목록 대신 기존 게시글 상세로 이동 | 사용자 구현 요청 |
|
|
| 2026-10-13 | 누락·잘못된 postId는 이동하지 않음 | 사용자 인터뷰 답변 |
|
|
| 2026-10-13 | 현재 브랜치 사용, worktree 금지 | 사용자 직접 지시 |
|