/**
 * 科目背景色映射表
 */
export const COURSE_COLOR_MAP: Record<string, string> = {
  '语文': '#91CC75', // 浅绿
  '数学': '#FAC858', // 黄色
  '英语': '#EE6666', // 红色
  '物理': '#817BE2', // 紫色
  '化学': '#73C0DE', // 天蓝
  '生物': '#3BA272', // 绿色
  '政治': '#63A1FF', // 
  '历史': '#FC8452', // 土黄
  '地理': '#9A60B4', // 天蓝
  '道德与法治': '#FF869D',
  'default': '#C495FA' // 默认颜色
}

/**
 * 根据科目名称获取背景色
 * @param courseName 科目名称
 * @returns 背景色十六进制字符串
 */
export const getCourseBgColor = (courseName: string): string => {
  if (!courseName) {
    return COURSE_COLOR_MAP['default']
  }
  return COURSE_COLOR_MAP[courseName] || COURSE_COLOR_MAP['default']
}

/**
 * 将时间戳转换为指定格式的时间字符串
 * @param timestamp 时间戳（秒或毫秒）
 * @param fmt 格式化字符串，默认为 'YYYY-MM-DD HH:mm:ss'
 * @returns 格式化后的时间字符串
 */
export const formatTimestamp = (timestamp: number | string | null | undefined, fmt: string = 'YYYY-MM-DD HH:mm:ss'): string => {
  if (!timestamp) return '-';
  
  // 统一转换为数字类型
  let ts = Number(timestamp);
  
  // 如果时间戳是10位（秒级），转换为13位（毫秒级）
  if (ts.toString().length === 10) {
    ts = ts * 1000;
  }

  const date = new Date(ts);
  
  // 如果日期无效，返回原值或横杠
  if (isNaN(date.getTime())) return '-';

  const o: Record<string, number> = {
    'M+': date.getMonth() + 1,                 // 月份
    'D+': date.getDate(),                      // 日
    'H+': date.getHours(),                     // 小时
    'm+': date.getMinutes(),                   // 分
    's+': date.getSeconds(),                   // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds()                // 毫秒
  };

  if (/(Y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }

  for (const k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k] + '') : (('00' + o[k]).substr(('' + o[k]).length)));
    }
  }
  return fmt;
}


// 将毫米转换成px 保留整数 小数 四舍五入
export const mmToPx=(num:number) :number=>{
    if(num)
    {
      let scale=1754/297;
      return  parseFloat((scale*num).toFixed(4));
    }
    else
    {
      console.log("num",num);
      return 0;
    }
};
