/**
 * 挂号订单模块字典常量
 * 列表 Tag 槽、卡片视图、详情弹窗、搜索下拉共用同一份映射，避免语义漂移
 */
export interface TagMeta {
  color: string;
  label: string;
}

/** 挂号方式（RegisterTypeEnum 口径：0线下 1在线问诊 2诊所在线复诊 3药店在线复诊） */
export const REGISTER_TYPE_MAP: Record<number, TagMeta> = {
  0: { label: '线下就诊', color: 'purple' },
  1: { label: '在线问诊', color: 'blue' },
  2: { label: '在线复诊（诊所）', color: 'green' },
  3: { label: '在线复诊（药店）', color: 'green' },
};

/** 挂号状态（yii_register.status：0待支付1待接诊2接诊中3已结束4已取消5待评价6已评价7已拒诊） */
export const REGISTER_STATUS_MAP: Record<number, TagMeta> = {
  0: { label: '待支付', color: 'red' },
  1: { label: '待接诊', color: 'orange' },
  2: { label: '接诊中', color: 'blue' },
  3: { label: '已结束', color: 'default' },
  4: { label: '已取消', color: 'default' },
  5: { label: '待评价', color: 'purple' },
  6: { label: '已评价', color: 'purple' },
  7: { label: '已拒诊', color: 'red' },
};

/** 退款状态（列表页口径：1退款中 3已退款） */
export const REGISTER_REFUND_STATUS_MAP: Record<number, TagMeta> = {
  0: { label: '未退款', color: 'default' },
  1: { label: '退款中', color: 'pink' },
  2: { label: '已拒绝', color: 'red' },
  3: { label: '已退款', color: 'green' },
};

/** 支付方式（yii_register.pay_type：1微信 2易票联） */
export const REGISTER_PAY_TYPE_MAP: Record<number, string> = {
  1: '微信支付',
  2: '易票联支付',
};

/** 搜索下拉：挂号类型选项（由映射生成，保证与展示同语义） */
export const REGISTER_TYPE_OPTIONS = Object.entries(REGISTER_TYPE_MAP).map(
  ([value, meta]) => ({ label: meta.label, value: Number(value) }),
);

/** 搜索下拉：支付状态选项 */
export const REGISTER_IS_PAY_OPTIONS = [
  { label: '已支付', value: 1 },
  { label: '未支付', value: 0 },
];

/** 搜索下拉：挂号状态选项（由状态映射生成，避免手写重复） */
export const REGISTER_STATUS_OPTIONS = Object.entries(REGISTER_STATUS_MAP).map(
  ([value, meta]) => ({ label: meta.label, value: Number(value) }),
);

/** 搜索下拉：退款状态选项（挂号退款无「拒绝」流程，只提供实际会出现的值） */
export const REGISTER_REFUND_STATUS_OPTIONS = [
  { label: '未退款', value: 0 },
  { label: '退款中', value: 1 },
  { label: '已退款', value: 3 },
];
