/**
 * 格式化相關工具函式
 */

/**
 * 格式化數字為千分位格式
 */
export const formatNumber = (num: number): string => {
  return num.toLocaleString();
};

/**
 * 格式化日期
 */
export const formatDate = (date: string): string => {
  if (!date) return "-";
  return new Date(date).toLocaleDateString("zh-TW");
};

/**
 * 獲取當前日期（YYYY-MM-DD 格式）
 */
export const getCurrentDate = (): string => {
  return new Date().toISOString().split("T")[0];
};

/**
 * 生成唯一 ID
 */
export const generateId = (): string => {
  return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
};

/**
 * 生成撥補單號
 */
export const generateOrderNumber = (): string => {
  return `TO${Date.now().toString().slice(-8)}`;
};

/**
 * 生成批號
 * 格式：{倉庫代碼}-{日期YYYYMMDD}-{流水號}
 * 例如：WH1-20251128-001
 */
export const generateBatchNumber = (
  warehouseId: string,
  date?: string,
  sequence?: number
): string => {
  const targetDate = date || getCurrentDate();
  const dateStr = targetDate.replace(/-/g, "");
  const seq = sequence || Math.floor(Math.random() * 1000);
  const seqStr = seq.toString().padStart(3, "0");
  return `WH${warehouseId}-${dateStr}-${seqStr}`;
};

/**
 * 獲取當前日期時間（YYYY-MM-DDTHH:mm 格式，用於 datetime-local input）
 */
export const getCurrentDateTime = (): string => {
  const now = new Date();
  const year = now.getFullYear();
  const month = String(now.getMonth() + 1).padStart(2, "0");
  const day = String(now.getDate()).padStart(2, "0");
  const hours = String(now.getHours()).padStart(2, "0");
  const minutes = String(now.getMinutes()).padStart(2, "0");
  return `${year}-${month}-${day}T${hours}:${minutes}`;
};

/**
 * 格式化日期時間顯示
 */
export const formatDateTime = (datetime: string): string => {
  if (!datetime) return "-";
  return new Date(datetime).toLocaleString("zh-TW", {
    year: "numeric",
    month: "2-digit",
    day: "2-digit",
    hour: "2-digit",
    minute: "2-digit",
  });
};
