/**
 * 队列任务状态/分类常量（与后端 Enum 对齐，接口失败时作兜底）
 */
export const QUEUE_JOB_STATUS_OPTIONS = [
  { label: '排队中', value: 0 },
  { label: '正在执行', value: 1 },
  { label: '已完成', value: 2 },
  { label: '队列异常', value: 3 },
  { label: '已取消', value: 4 },
];

/** 普通 / 延迟 筛选（与后端 delay_type 对齐） */
export const QUEUE_JOB_DELAY_TYPE_OPTIONS = [
  { label: '普通队列', value: 0 },
  { label: '延迟队列', value: 1 },
];

/** 1 业务 2 基础设施 */
export const QUEUE_JOB_CATEGORY = {
  BUSINESS: 1,
  INFRA: 2,
} as const;

export function statusTagColor(status: number): string {
  if (status === 0) return 'default';
  if (status === 1) return 'processing';
  if (status === 2) return 'success';
  if (status === 3) return 'error';
  if (status === 4) return 'warning';
  return 'default';
}

/**
 * 延迟秒数可读文案（列表「延迟」标签旁展示）
 */
export function formatDelaySeconds(seconds: number): string {
  const s = Math.max(0, Math.floor(Number(seconds) || 0));
  if (s < 60) return `${s}秒`;
  if (s < 3600) return `${Math.round(s / 60)}分钟`;
  if (s < 86400) {
    const h = Math.floor(s / 3600);
    const m = Math.round((s % 3600) / 60);
    return m > 0 ? `${h}小时${m}分` : `${h}小时`;
  }
  const d = Math.floor(s / 86400);
  const h = Math.round((s % 86400) / 3600);
  return h > 0 ? `${d}天${h}小时` : `${d}天`;
}

export function opTypeTagColor(opType: number): string {
  if (opType === 1) return 'warning';
  if (opType === 2) return 'processing';
  return 'default';
}
