diff --git a/lib/pack-assets.ts b/lib/pack-assets.ts new file mode 100644 index 0000000..fe6967b --- /dev/null +++ b/lib/pack-assets.ts @@ -0,0 +1,53 @@ +export interface PackAsset { + name: string; + files: string[]; +} + +export type PackTier = 'starter' | 'pro' | 'master'; + +export const PACK_ASSETS: Record = { + starter: { + name: 'AI 음악 마스터 팩 (입문)', + files: [ + 'Suno 프롬프트 북 PDF (40p)', + '구조 템플릿 PDF', + '저작권 가이드 기본판', + ], + }, + pro: { + name: 'AI 음악 마스터 팩 (프로)', + files: [ + '입문 자료 전체', + 'MV 워크플로우 가이드 (Runway · Luma · Pika)', + '샘플 프로젝트 1개 (.prj 파일 + 영상)', + '유튜브 SEO 템플릿', + '1:1 Q&A 1회 (이메일 응답)', + ], + }, + master: { + name: 'AI 음악 마스터 팩 (마스터)', + files: [ + '프로 자료 전체', + '샘플 프로젝트 장르별 3종', + '저작권 심화판 + 상업 이용 체크리스트', + '제작 레시피 영상 (우선 공개)', + ], + }, +}; + +/** + * orders.service ("구매 신청: AI 음악 마스터 팩 · 프로") → tier key. + * 매칭 안 되면 null 반환 (Music 팩 외 의뢰). + */ +export function extractPackTier(service: string): PackTier | null { + if (!service.startsWith('구매 신청:')) return null; + // service 예시: "구매 신청: AI 음악 마스터 팩 · 프로" + // 마지막 "·" 뒤가 tier 이름 + const dotIdx = service.lastIndexOf('·'); + if (dotIdx === -1) return null; + const tierName = service.slice(dotIdx + 1).trim(); + if (tierName === '입문') return 'starter'; + if (tierName === '프로') return 'pro'; + if (tierName === '마스터') return 'master'; + return null; +}