/** 企业首页新手引导完成标记（本地存储，按用户区分） */
export const ENTERPRISE_HOME_GUIDE_KEY = 'fe_enterprise_home_guide_v1'

const GUIDE_STEP_META = [
	{
		el: '.guide-target--sidebar',
		title: '会话列表',
		desc: '点右侧悬浮钮展开后，可查看历史会话并切换对话。',
		baseAlign: 'right'
	},
	{
		el: '.guide-target--new-chat',
		title: '新建会话',
		desc: '点右侧悬浮钮展开后，可开启全新 AI 对话。',
		baseAlign: 'right'
	},
	{
		el: '.guide-target--quick-bar',
		title: '快捷操作',
		desc: '常用功能一键直达：发布需求、成本测算、历史订单。',
		baseAlign: 'center',
		next: '开始使用'
	}
]

function buildGuideTips(title, desc) {
	return `<div style="font-weight:700;font-size:32rpx;margin-bottom:12rpx;">${title}</div><div style="line-height:1.7;color:#64748B;">${desc}</div>`
}

/** hz-novice-guidance 步骤配置（context 在启动时通过 setConfig 注入） */
export function buildNoviceGuidanceSteps() {
	return GUIDE_STEP_META.map((item) => ({
		el: item.el,
		tips: buildGuideTips(item.title, item.desc),
		baseAlign: item.baseAlign || 'center',
		...(item.next ? { next: item.next } : {})
	}))
}

/** hz-novice-guidance 全局配置 */
export const NOVICE_GUIDANCE_BASE_CONFIG = {
	highligthStyle: {
		'--bgcolor': 'rgba(0, 0, 0, 0.55)'
	},
	tipMaxWidth: '72vw',
	next: '下一步',
	skip: '跳过',
	showSkip: true,
	nextStyle: {
		background: '#7C3AED',
		borderRadius: '999rpx',
		padding: '12rpx 32rpx'
	},
	skipStyle: {
		color: '#64748B'
	},
	tipStyle: {
		borderRadius: '28rpx',
		padding: '32rpx 28rpx',
		boxShadow: '0 20rpx 60rpx rgba(0, 0, 0, 0.2)'
	}
}

function buildGuideKey(guideUserKey) {
	return `${ENTERPRISE_HOME_GUIDE_KEY}_${guideUserKey}`
}

/** 用于本地引导标记的用户标识（优先 userId，否则手机号/企业 ID） */
export function resolveGuideUserKey(user = {}, enterprise = {}) {
	if (user.userId != null && user.userId !== '') return String(user.userId)
	if (user.mobile) return `m_${user.mobile}`
	if (enterprise.enterpriseId != null && enterprise.enterpriseId !== '') {
		return `e_${enterprise.enterpriseId}`
	}
	return 'enterprise'
}

export function isEnterpriseHomeGuideDone(guideUserKey) {
	if (!guideUserKey) return false
	try {
		if (uni.getStorageSync(buildGuideKey(guideUserKey))) return true
		return !!uni.getStorageSync(ENTERPRISE_HOME_GUIDE_KEY)
	} catch (e) {
		return false
	}
}

export function setEnterpriseHomeGuideDone(guideUserKey) {
	if (!guideUserKey) return
	try {
		uni.setStorageSync(buildGuideKey(guideUserKey), '1')
		uni.removeStorageSync(ENTERPRISE_HOME_GUIDE_KEY)
	} catch (e) {}
}

/** 退出登录时清除，下次登录重新展示引导 */
export function clearEnterpriseHomeGuide(user = {}, enterprise = {}) {
	const guideUserKey = typeof user === 'string'
		? user
		: resolveGuideUserKey(user, enterprise)
	try {
		if (guideUserKey) uni.removeStorageSync(buildGuideKey(guideUserKey))
		uni.removeStorageSync(ENTERPRISE_HOME_GUIDE_KEY)
	} catch (e) {}
}
