diff --git a/lib/pack-assets.ts b/lib/pack-assets.ts index ffdb726..a16995a 100644 --- a/lib/pack-assets.ts +++ b/lib/pack-assets.ts @@ -1,8 +1,3 @@ -export interface PackAsset { - name: string; - files: string[]; -} - export type PackTier = 'starter' | 'pro' | 'master'; /** @@ -19,43 +14,21 @@ const LABEL_TO_TIER: Record = Object.fromEntries( Object.entries(TIER_LABEL).map(([tier, label]) => [label, tier as PackTier]) ); -export const PACK_ASSETS: Record = { - starter: { - name: `AI 음악 마스터 팩 (${TIER_LABEL.starter})`, - files: [ - 'Suno 프롬프트 북 PDF (40p)', - '구조 템플릿 PDF', - '저작권 가이드 기본판', - ], - }, - pro: { - name: `AI 음악 마스터 팩 (${TIER_LABEL.pro})`, - files: [ - '입문 자료 전체', - 'MV 워크플로우 가이드 (Runway · Luma · Pika)', - '샘플 프로젝트 1개 (.prj 파일 + 영상)', - '유튜브 SEO 템플릿', - '1:1 Q&A 1회 (이메일 응답)', - ], - }, - master: { - name: `AI 음악 마스터 팩 (${TIER_LABEL.master})`, - files: [ - '프로 자료 전체', - '샘플 프로젝트 장르별 3종', - '저작권 심화판 + 상업 이용 체크리스트', - '제작 레시피 영상 (우선 공개)', - ], - }, +/** + * Tier 키 → 팩 이름 (mypage 표시용). + * 자료 파일 리스트는 pack_files DB 테이블이 SSOT. + */ +export const PACK_TIER_NAMES: Record = { + starter: `AI 음악 마스터 팩 (${TIER_LABEL.starter})`, + pro: `AI 음악 마스터 팩 (${TIER_LABEL.pro})`, + master: `AI 음악 마스터 팩 (${TIER_LABEL.master})`, }; /** * orders.service ("구매 신청: AI 음악 마스터 팩 · 프로") → tier key. * 매칭 안 되면 null 반환 (Music 팩 외 의뢰). * - * NOTE: service 문자열은 U+00B7 MIDDLE DOT (·) 사용. 이 함수는 "마지막 ·" 뒤의 - * 단어를 tier 라벨로 인식. 예: "구매 신청: AI 음악 마스터 팩 · 프로" → "프로" → 'pro'. - * Phase 2에서 marketing 카피가 tier 뒤에 추가 ·를 두면 이 로직 재검토 필요. + * NOTE: service 문자열은 U+00B7 MIDDLE DOT (·) 사용. */ export function extractPackTier(service: string): PackTier | null { if (!service.startsWith('구매 신청:')) return null; @@ -64,10 +37,3 @@ export function extractPackTier(service: string): PackTier | null { const tierName = service.slice(dotIdx + 1).trim(); return LABEL_TO_TIER[tierName] ?? null; } - -/** - * Phase 2 migration note: `files: string[]` 는 placeholder. Phase 2에서 NAS - * 파일 URL 도입 시 `files: { label: string; url?: string; sizeBytes?: number }[]` - * 형태로 확장 필요. mypage page.tsx 의 `{file}` → `{file.label}` - * 동시 변경. - */