/**
 * antd Tag 预设色名 → css 色值工具
 *
 * 为什么需要：Apple 风格卡片用「状态彩点 + tinted 胶囊」替代 antd Tag 色块，
 * 但字典常量里沿用 antd 色名（red/green/processing…），这里统一转换成真实色值，
 * 供订单三页卡片视图与详情弹窗共用，避免各组件复制色板。
 */
export const TAG_COLOR_HEX: Record<string, string> = {
  red: '#f5222d',
  orange: '#fa8c16',
  gold: '#faad14',
  yellow: '#d4b106',
  green: '#52c41a',
  cyan: '#13c2c2',
  blue: '#1677ff',
  geekblue: '#2f54eb',
  purple: '#722ed1',
  pink: '#eb2f96',
  magenta: '#eb2f96',
  processing: '#1677ff',
  success: '#52c41a',
  warning: '#fa8c16',
  error: '#f5222d',
  gray: '#8c8c8c',
  default: '#8c8c8c',
};

/** 未知色名兜底灰（单独常量，规避 Record 索引返回 undefined 的类型收窄问题） */
const DEFAULT_TAG_HEX = '#8c8c8c';

/** Tag 色名转 css 色值；自定义 hex 原样返回，未知色名回退灰 */
export function tagColorHex(color?: string): string {
  if (!color) return DEFAULT_TAG_HEX;
  return color.startsWith('#') ? color : (TAG_COLOR_HEX[color] ?? DEFAULT_TAG_HEX);
}

/** Apple tinted 胶囊内联样式：同色 10% 透明度底 + 同色文字（8 位 hex alpha） */
export function pillStyle(color?: string) {
  const hex = tagColorHex(color);
  return { color: hex, background: `${hex}1a` };
}
