// 开通页面地址（public/web/subscribe.html）
const SUBSCRIBE_PAGE_URL = '/web/subscribe.html';

// 路由路径与 assetId 的映射关系
const ROUTE_ASSET_MAP: Record<string, { assetId: string; serviceName: string }> = {
	// CID广告业务(聚合广告)
	'/cidService': { assetId: '696f423705e496ba4ccbe665', serviceName: '聚合广告' },

	// AI客服业务
	'/customerService': { assetId: '696f421205e496ba4ccbe662', serviceName: 'AI客服' },

	// 聚合电商业务(资产管理)
	'/assets': { assetId: '696b4acd1be1c8b76c4b4c15', serviceName: '资产管理' },
};

/**
 * 根据路由路径获取对应的 assetId 和服务名称
 */
export function getAssetInfoByRoute(routePath: string): { assetId: string; serviceName: string } | null {
	// 精确匹配
	if (ROUTE_ASSET_MAP[routePath]) {
		return ROUTE_ASSET_MAP[routePath];
	}

	// 前缀匹配
	for (const [prefix, info] of Object.entries(ROUTE_ASSET_MAP)) {
		if (routePath.startsWith(prefix)) {
			return info;
		}
	}

	return null;
}

/**
 * 跳转到外部开通页面
 * @param assetId 资产ID
 */
export function redirectToSubscribePage(assetId: string) {
	// 当前页面地址作为返回地址
	const returnUrl = encodeURIComponent(window.location.href);
	// 构建跳转URL
	const url = `${SUBSCRIBE_PAGE_URL}?assetId=${assetId}&returnUrl=${returnUrl}`;
	window.location.href = url;
}

/**
 * 处理 402 错误码（模块未开通）
 */
export function handleModuleNotEnabled(routePath: string): boolean {
	const assetInfo = getAssetInfoByRoute(routePath);

	if (assetInfo) {
		redirectToSubscribePage(assetInfo.assetId);
		return true;
	}

	redirectToSubscribePage('696b4acd1be1c8b76c4b4c15');
	return true;
}
