import type { SuixinBaseThemeId, UserProfileScoring } from '@/src/storage/appStorage'; const ALL_NEED_THEME_IDS: ReadonlySet = new Set([ 'emotional_support', 'parenting_pressure', 'self_worth', 'anxiety_relief', 'rest_balance', ]); /** * Base Theme 选择(Theme Picking) * * Hard Rules(对齐设计文档): * - mom_stage = unknown → 强制 Neutral * - need 跳过/缺失 → Neutral */ export function pickSuixinBaseThemeId(profile: UserProfileScoring | null | undefined): SuixinBaseThemeId { if (!profile) return 'neutral'; // Hard Rule:unknown → Neutral if (profile.stage?.unknown === 1) return 'neutral'; const needObj = profile.need ?? {}; const keys = Object.keys(needObj); if (keys.length === 0) return 'neutral'; const needId = keys[0]; if (!ALL_NEED_THEME_IDS.has(needId)) return 'neutral'; return needId as Exclude; }