This commit is contained in:
eric
2026-03-26 10:33:45 -05:00
parent d8bae6c180
commit a94e801a95
5 changed files with 460 additions and 83 deletions

View File

@@ -44,7 +44,6 @@ export const TOPIC_CONFIGS: Record<string, TopicConfig> = {
{ value: "100+", label: "分钟视频" },
{ value: "2", label: "大模块" },
],
moduleIndices: [1, 2],
payUrl: "/",
},
indie: {
@@ -75,6 +74,36 @@ export const TOPIC_CONFIGS: Record<string, TopicConfig> = {
},
};
const LIVESTREAM_CURRICULUM = [
{
emoji: "🎯",
title: "策略篇 · 账号定位",
lessons: [
{ name: "01 赛道选择与账号人设设计", duration: "09:30" },
{ name: "02 起号期内容与直播节奏", duration: "11:20" },
],
originalModuleIndex: 1,
},
{
emoji: "🧩",
title: "执行篇 · 素材与脚本",
lessons: [
{ name: "03 直播素材筛选与版权避坑", duration: "12:10" },
{ name: "04 开播话术与互动脚本模板", duration: "10:45" },
],
originalModuleIndex: 2,
},
{
emoji: "📈",
title: "增长篇 · 复盘优化",
lessons: [
{ name: "05 流量数据复盘与调优闭环", duration: "13:15" },
{ name: "06 多账号矩阵扩展方法", duration: "14:00" },
],
originalModuleIndex: 3,
},
] as const;
export function getTopicConfig(topicId: string): TopicConfig | null {
return TOPIC_CONFIGS[topicId] ?? null;
}
@@ -83,6 +112,9 @@ export function getTopicCurriculum(topicId: string) {
const config = getTopicConfig(topicId);
if (!config) return null;
if (config.externalUrl) return { modules: [], hasContent: false };
if (topicId === "livestream") {
return { modules: LIVESTREAM_CURRICULUM, hasContent: LIVESTREAM_CURRICULUM.length > 0 };
}
const indices = config.moduleIndices ?? CURRICULUM_CONFIG.modules.map((_, i) => i);
const modules = indices
.map((i) => ({ module: CURRICULUM_CONFIG.modules[i], originalIndex: i }))