const BASE_URL = 'http://110.42.33.196:8089';//定义后端基础接口地址
import config from '../../config'; // 引入配置文件

const formatNumber = (n: number | string): string => {
    n = n.toString();// 1. 将数字转为字符串（如 5 → "5"，12 → "12"）
    return n[1] ? n : '0' + n;// 2. 补零逻辑：若字符串长度<2（如 "5"），则在前面加"0" → "05"；否则直接返回（如 "12"）
}

const formatTime = (date: Date | string | number) => {
    date = new Date(date);// 1. 将输入的日期参数（可能是时间戳/字符串）转为标准 Date 对象
    const hour: number = date.getHours();// 2. 获取小时（0-23）
    const minute: number = date.getMinutes();// 3. 获取分钟（0-59）
    const second: number = date.getSeconds();// 4. 获取秒（0-59）
    // 5. 拼接为 "时:分:秒" 格式（调用 formatNumber 补零），如 "09:05:03"
    return `${formatNumber(hour)}:${formatNumber(minute)}:${formatNumber(second)}`;
}

//日期格式化函数（仅返回年月日）
const formatDate = (date: Date | string | number) => {
    date = new Date(date);// 1. 转为标准 Date 对象
    const year = date.getFullYear()// 2. 获取完整年份（如 2024）
    const month = date.getMonth() + 1// 3. 获取月份（注意：Date 中月份是 0-11，需+1 才是实际月份，如 2→3月
    const day = date.getDate()// 4. 获取日期（1-31）
    // 5. 拼接为 "年-月-日" 格式（补零），如 "2024-03-15"
    return `${year}-${formatNumber(month)}-${formatNumber(day)}`
}

//完整日期时间格式化函数（年月日 + 时分秒）
const formatDateTime = (date: Date | string | number) => {
    return `${formatDate(date)} ${formatTime(date)}`
}

//统一请求头配置函数（核心！！！！！！！！！！！！！！！！！！！！所有接口共用）
 function getHeaders() {
    const staff = uni.getStorageSync('staff') || null// 1. 再次读取用户信息（避免缓存过期，确保最新）
    // console.log("用户信息：",staff)// 2. 控制台打印用户信息，用于开发调试
    const staffisnull = !staff // 3. 简化判断：用户信息为空则为 true，否则为 false
    // 4. 返回请求头对象（接口请求时会携带这些信息，供后端验证）
    return {
        'content-type': 'application/json',// ① 声明请求体格式为 JSON（后端需按 JSON 解析数据）
        //'Authorization': staffisnull ? null : `Bearer ${uni.getStorageSync('token')}`,
        'hosp-ID': staffisnull ? config.defaultHospId : staff.hosp_id,// ③ 医院ID：用户未登录用配置文件的默认值，登录后用用户所属医院ID
        'user-ID': staffisnull ? null : staff.id,// ④ 用户ID：用户未登录为 null，登录后用用户ID（后端用于识别请求用户）
        'datetime': formatDateTime(new Date()),// ⑤ 请求时间：当前完整日期时间（后端可用于校验请求时效性）
        'createby': staffisnull ? null : staff.id// ⑥ 创建人ID：与 user-ID 类似，用于后端记录操作人
    }////核心作用：统一所有接口的请求头格式，避免每个接口重复写头信息，同时支持 “登录 / 未登录” 状态的动态适配。
}

export { formatTime, formatDate, formatDateTime, BASE_URL, getHeaders };// 导出时间格式化函数、BASE_URL 和 getHeaders 供其他模块使用