/**
 * 数字转中文（支持 0-99 整数）
 * @param num 需要转化的数字
 */
export const onNumToChinese = (num:number) => {
	// 1. 基础校验：只处理 0-99 的整数
	if (!Number.isInteger(num) || num < 0 || num > 99) return '100';
	// 2. 定义基础字符
	const singleChars = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
	const tenChar = '十';
	// 3. 核心转换逻辑
	if (num < 10) {
		// 0-9 直接返回对应字符
		return singleChars[num];
	} else if (num === 10) {
		// 10 特殊处理
		return tenChar;
	} else if (num < 20) {
		// 11-19：十 + 个位（如十一、十九）
		return tenChar + singleChars[num - 10];
	} else {
		// 20-99：十位 + 十 + 个位（个位为0则省略，如二十、二十九）
		const ten = Math.floor(num / 10); // 十位数字
		const unit = num % 10; // 个位数字
		return singleChars[ten] + tenChar + (unit === 0 ? '' : singleChars[unit]);
	}
}


/**
 * 获取 n 天前的日期，格式：YYYY-MM-DD
 * @param num 往前推的天数
 */
export const getDateBefore = (num: number) => {
  const now = new Date();
  const targetTime = now.getTime() - num * 24 * 60 * 60 * 1000;
  const targetDate = new Date(targetTime);

  const year = targetDate.getFullYear();
  const month = String(targetDate.getMonth() + 1).padStart(2, '0');
  const day = String(targetDate.getDate()).padStart(2, '0');

  return `${year}-${month}-${day}`;
}

/**
 * 获取最近年份列表
 * @param num 需要几年前的列表
 */
export const getNearYearList = (num=6) => {
	const currentYear = new Date().getFullYear();
	const yearOptions = [];
	for (let i = 0; i < num; i++) {
		const year = currentYear - i;
		yearOptions.push({ label: year.toString()+'年', value: year.toString() });
	}
	return yearOptions;
};

/**
 * AI智能总结
 * @param data 需要分析的数据
 */
export const getAIReport = async (data:any) => {
	let word = ""

	// 👇 新增：超时 + 终止请求（只加这一段）
	const controller = new AbortController();
	const timeout = setTimeout(() => controller.abort(), 10*1000); // 10秒超时

	try {
		const res = await fetch('/aiAnalysis/chart_interpretation', {
			method: 'POST',
			headers: {
				"X-API-Key": "aircasKEY19491001",
				'Content-Type': 'application/json',
			},
			body: JSON.stringify({text: JSON.stringify(data)}),
			signal: controller.signal // 👇 新增：绑定中断信号
		});

		clearTimeout(timeout); // 👇 新增：请求成功清除定时器
		if (!res.ok) throw new Error(`HTTP 错误 ${res.status}`);
		const reader = res.body.getReader();
		const decoder = new TextDecoder();

		let buffer = '';
		let summarize = '';

		while (true) {
			const { done, value } = await reader.read();
			if (done) break;

			buffer += decoder.decode(value, { stream: true });
			const lines = buffer.split('\n');
			buffer = lines.pop() || '';

			for (const line of lines) {
				if (line.startsWith('data: ')) {
					const content = line.substring(6);
					const textMatch = content.match(/"解读":\s*"([^"]*)"/);
					if (textMatch && textMatch[1]) summarize = textMatch[1];
				}
			}
		}
		word = summarize
	} catch (err) {
		word = "系统异常，生成失败";
	}
	return word
}