/**
 * 供应商状态枚举
 * 与后端 SupplierStatusEnum 保持一致
 */
export enum SupplierStatusEnum {
  PENDING_REVIEW = 0,     // 待审核
  OFFICIAL_SUPPLIER = 1,  // 正式供应商
  DISABLED = 2,           // 停用
  REVIEW_FAILED = 3,       // 审核未通过
  REVIEW_UPDATED = 4      // 待修改审核
}

/**
 * 供应商状态配置
 */
export const SUPPLIER_STATUS_CONFIG = {
  [SupplierStatusEnum.PENDING_REVIEW]: {
    code: 0,
    originalName: '待审核',
    displayName: '待审核'
  },
  [SupplierStatusEnum.OFFICIAL_SUPPLIER]: {
    code: 1,
    originalName: '正式供应商',
    displayName: '生效'
  },
  [SupplierStatusEnum.DISABLED]: {
    code: 2,
    originalName: '停用',
    displayName: '停止合作'
  },
  [SupplierStatusEnum.REVIEW_FAILED]: {
    code: 3,
    originalName: '审核未通过',
    displayName: '审核不通过'
  },
  [SupplierStatusEnum.REVIEW_UPDATED]:{
    code: 4,
    originalName: '待修改审核',
    displayName: '待修改审核'
  }
};

/**
 * 获取供应商状态选项列表（用于下拉框）
 * @param useOriginalName 是否使用原始名称，true=显示originalName，false=显示displayName
 */
export const getSupplierStatusOptions = (useOriginalName = false) => {
  // 过滤掉状态4（待修改审核），只保留0、1、2、3
  return Object.values(SUPPLIER_STATUS_CONFIG)
    .filter(item => item.code !== 4)
    .map(item => ({
      label: useOriginalName ? item.originalName : item.displayName,
      value: item.code
    }));
};

/**
 * 根据code获取展示文案
 */
export const getSupplierStatusDisplayName = (code: number): string => {
  const config = SUPPLIER_STATUS_CONFIG[code as SupplierStatusEnum];
  return config ? config.displayName : '未知状态';
};

/**
 * 根据code获取原始名称
 */
export const getSupplierStatusOriginalName = (code: number): string => {
  const config = SUPPLIER_STATUS_CONFIG[code as SupplierStatusEnum];
  return config ? config.originalName : '未知状态';
};