"use strict";
const common_vendor = require("../vendor.js");
common_vendor.dayjs.locale("zh-cn");
common_vendor.dayjs.extend(common_vendor.relativeTime);
const getShowDay = (day) => {
  const weekMap = {
    0: "星期日",
    1: "星期一",
    2: "星期二",
    3: "星期三",
    4: "星期四",
    5: "星期五",
    6: "星期六"
  };
  const targetDate = common_vendor.dayjs(day).startOf("day");
  const today = common_vendor.dayjs().startOf("day");
  const yesterday = today.subtract(1, "day");
  const tomorrow = today.add(1, "day");
  const weekDay = weekMap[targetDate.day()];
  if (targetDate.isSame(today, "day")) {
    return `今天 ${weekDay}`;
  } else if (targetDate.isSame(yesterday, "day")) {
    return `昨天 ${weekDay}`;
  } else if (targetDate.isSame(tomorrow, "day")) {
    return `明天 ${weekDay}`;
  } else {
    return `${day} ${weekDay}`;
  }
};
function ShowLastTime(time) {
  return time ? common_vendor.dayjs(time).fromNow() : "-";
}
function showDay(time) {
  return time ? common_vendor.dayjs(time).format("YYYY-MM-DD") : "-";
}
function getDay(num) {
  if (num) {
    const yesterday = common_vendor.dayjs().subtract(num, "day");
    console.log(yesterday.format("YYYY-MM-DD"));
    return yesterday.format("YYYY-MM-DD");
  }
  return common_vendor.dayjs().format("YYYY-MM-DD");
}
function getTime() {
  return common_vendor.dayjs().format("YYYY-MM-DD HH:mm:ss");
}
function getTimeStatus(endTime) {
  const now = common_vendor.dayjs();
  const end = common_vendor.dayjs(endTime);
  if (end.isBefore(now)) {
    const hours = now.diff(end, "hour");
    const minutes = now.diff(end, "minute") % 60;
    let label = "已过期望处理时间：";
    if (hours > 0) {
      label += `${hours}个小时`;
    }
    if (minutes > 0) {
      label += `${minutes}分钟`;
    }
    return {
      label,
      status: "4",
      color: "#EA0000"
    };
  } else {
    const diffHours = end.diff(now, "hour");
    const diffMinutes = end.diff(now, "minute") % 60;
    let status;
    let color;
    if (diffHours >= 24) {
      status = "1";
      color = "#24BC21";
    } else if (diffHours >= 2) {
      status = "2";
      color = "#0082FA";
    } else {
      status = "3";
      color = "#F97316";
    }
    const days = Math.floor(diffHours / 24);
    const hours = diffHours % 24;
    let label = "上门时间还剩：";
    if (days > 0) {
      label += `${days}天`;
    }
    if (hours > 0) {
      label += `${hours}个小时`;
    }
    if (diffMinutes > 0) {
      label += `${diffMinutes}分钟`;
    }
    return {
      label,
      status,
      color
    };
  }
}
function showCurrentTime() {
  return common_vendor.dayjs().format("HH:mm");
}
function isDatePassed(fixedDate) {
  console.log(common_vendor.dayjs().isAfter(common_vendor.dayjs(fixedDate)), "dayjs().isAfter(dayjs(fixedDate))");
  return common_vendor.dayjs().isAfter(common_vendor.dayjs(fixedDate), "day");
}
function showWeekDay() {
  const weekMap = {
    0: "星期日",
    1: "星期一",
    2: "星期二",
    3: "星期三",
    4: "星期四",
    5: "星期五",
    6: "星期六"
  };
  const today = weekMap[common_vendor.dayjs().day()];
  return today;
}
function getDayTime(time) {
  if (time) {
    let dataTime = time == null ? void 0 : time.replace(/-/g, "/");
    return common_vendor.dayjs(dataTime).format("YYYY-MM-DD HH:mm");
  }
  return common_vendor.dayjs().format("YYYY-MM-DD HH:mm");
}
function specificTime(targetTime) {
  let dataTime = targetTime == null ? void 0 : targetTime.replace(/-/g, "/");
  const now = common_vendor.dayjs();
  const target = common_vendor.dayjs(dataTime);
  let hoursDiff = Math.abs(target.diff(now, "hour", true)) <= 2 || target.isBefore(now);
  console.log(hoursDiff, "hoursDiff");
  return hoursDiff;
}
function isOverHalfHourPast(targetTime) {
  let dataTime = targetTime == null ? void 0 : targetTime.replace(/-/g, "/");
  const now = common_vendor.dayjs();
  const target = common_vendor.dayjs(dataTime);
  const diffInMinutes = now.diff(target, "minute");
  return diffInMinutes > 30;
}
function isWithinTimeRange(targetTime, minutesRange = 30) {
  let dataTime = targetTime == null ? void 0 : targetTime.replace(/-/g, "/");
  console.log(targetTime, dataTime, "targetTime");
  const now = common_vendor.dayjs();
  const checkTime = common_vendor.dayjs(dataTime);
  const startTime = checkTime.startOf("day");
  const endTime = checkTime.endOf("day");
  return now.isAfter(startTime) && now.isBefore(endTime);
}
function showTime(time) {
  let dataTime = time == null ? void 0 : time.replace(/-/g, "/");
  return dataTime ? common_vendor.dayjs(dataTime).format("HH:mm") : "";
}
exports.ShowLastTime = ShowLastTime;
exports.getDay = getDay;
exports.getDayTime = getDayTime;
exports.getShowDay = getShowDay;
exports.getTime = getTime;
exports.getTimeStatus = getTimeStatus;
exports.isDatePassed = isDatePassed;
exports.isOverHalfHourPast = isOverHalfHourPast;
exports.isWithinTimeRange = isWithinTimeRange;
exports.showCurrentTime = showCurrentTime;
exports.showDay = showDay;
exports.showTime = showTime;
exports.showWeekDay = showWeekDay;
exports.specificTime = specificTime;
