/**
 * 司南报告(DWBG6A2C)数据拆分工具
 * 将完整的司南报告数据拆分成多个独立的模块，用于在不同的tab中显示
 */

/**
 * 将DWBG6A2C数据拆分为多个独立的tab模块
 * @param {Array} reportData - 原始报告数据数组
 * @returns {Array} 拆分后的模块数组
 */
export function splitDWBG6A2CForTabs(reportData) {
  // 查找DWBG6A2C数据
  const dwbg6a2cData = reportData.find(item => item.data?.apiID === 'DWBG6A2C');

  if (!dwbg6a2cData || !dwbg6a2cData.data?.data) {
    return reportData; // 如果没有找到DWBG6A2C数据，返回原数据
  }

  const originalData = dwbg6a2cData.data.data;
  const baseTimestamp = dwbg6a2cData.data.timestamp;

  // 创建拆分后的模块数组
  const splitModules = [];

  // 1. 基本信息
  // if (originalData.baseInfo) {
  //   splitModules.push({
  //     data: {
  //       apiID: 'DWBG6A2C_BaseInfo',
  //       data: {
  //         baseInfo: originalData.baseInfo
  //       },
  //       success: true,
  //       timestamp: baseTimestamp
  //     }
  //   });
  // }

  // 2. 身份信息核验
  if (originalData.standLiveInfo) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_StandLiveInfo',
        data: {
          standLiveInfo: originalData.standLiveInfo
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 3. 命中风险标注
  if (originalData.riskPoint) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_RiskPoint',
        data: {
          riskPoint: originalData.riskPoint
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 4. 公安重点人员核验
  if (originalData.securityInfo) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_SecurityInfo',
        data: {
          securityInfo: originalData.securityInfo
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 5. 涉赌涉诈人员核验
  if (originalData.antiFraudInfo) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_AntiFraudInfo',
        data: {
          antiFraudInfo: originalData.antiFraudInfo
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 6. 风险名单
  if (originalData.riskList) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_RiskList',
        data: {
          riskList: originalData.riskList
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 7. 历史借贷行为
  if (originalData.applicationStatistics) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_ApplicationStatistics',
        data: {
          applicationStatistics: originalData.applicationStatistics
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 8. 近24个月放款情况
  if (originalData.lendingStatistics) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_LendingStatistics',
        data: {
          lendingStatistics: originalData.lendingStatistics
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 9. 履约情况
  if (originalData.performanceStatistics) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_PerformanceStatistics',
        data: {
          performanceStatistics: originalData.performanceStatistics
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 10. 历史逾期记录
  if (originalData.overdueRecord) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_OverdueRecord',
        data: {
          overdueRecord: originalData.overdueRecord
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 11. 授信详情
  if (originalData.creditDetail && Object.keys(originalData.creditDetail).length > 0) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_CreditDetail',
        data: {
          creditDetail: originalData.creditDetail
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 12. 租赁行为
  if (originalData.rentalBehavior) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_RentalBehavior',
        data: {
          rentalBehavior: originalData.rentalBehavior
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 13. 关联风险监督
  if (originalData.riskSupervision) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_RiskSupervision',
        data: {
          riskSupervision: originalData.riskSupervision
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 14. 法院风险信息
  if (originalData.judiciaRiskInfos && originalData.judiciaRiskInfos.length > 0) {
    splitModules.push({
      data: {
        apiID: 'DWBG6A2C_CourtRiskInfo',
        data: {
          judiciaRiskInfos: originalData.judiciaRiskInfos
        },
        success: true,
        timestamp: baseTimestamp
      }
    });
  }

  // 移除原始的DWBG6A2C数据，添加拆分后的模块
  const otherData = reportData.filter(item => item.data?.apiID !== 'DWBG6A2C');

  return [...otherData, ...splitModules];
}

/**
 * 格式化风险等级描述
 * @param {string} level - 风险等级
 * @returns {object} 包含颜色和文本的对象
 */
export function formatRiskLevel(level) {
  const riskLevels = {
    '0': { color: 'text-green-600', bg: 'bg-green-100', text: '无风险', icon: '✅' },
    '1': { color: 'text-red-600', bg: 'bg-red-100', text: '有风险', icon: '⚠️' },
    'A': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '较低风险', icon: '⚠️' },
    'B': { color: 'text-orange-600', bg: 'bg-orange-100', text: '低风险', icon: '⚠️' },
    'C': { color: 'text-red-600', bg: 'bg-red-100', text: '中风险', icon: '🚨' },
    'D': { color: 'text-red-700', bg: 'bg-red-200', text: '高风险', icon: '🚨' }
  };

  return riskLevels[level] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' };
}

/**
 * 格式化手机号码状态
 * @param {number} status - 状态码
 * @returns {object} 包含颜色和文本的对象
 */
export function formatPhoneStatus(status) {
  const statusMap = {
    '-1': { color: 'text-gray-600', bg: 'bg-gray-100', text: '未查得', icon: '❓' },
    '0': { color: 'text-red-600', bg: 'bg-red-100', text: '空号', icon: '❌' },
    '1': { color: 'text-green-600', bg: 'bg-green-100', text: '实号', icon: '✅' },
    '2': { color: 'text-orange-600', bg: 'bg-orange-100', text: '停机', icon: '⏸️' },
    '3': { color: 'text-gray-600', bg: 'bg-gray-100', text: '库无', icon: '❓' },
    '4': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '沉默号', icon: '😴' },
    '5': { color: 'text-red-600', bg: 'bg-red-100', text: '风险号', icon: '⚠️' }
  };

  return statusMap[status.toString()] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' };
}

/**
 * 格式化身份核验结果
 * @param {string} result - 核验结果
 * @returns {object} 包含颜色和文本的对象
 */
export function formatVerificationResult(result) {
  const resultMap = {
    '0': { color: 'text-green-600', bg: 'bg-green-100', text: '一致', icon: '✅' },
    '1': { color: 'text-red-600', bg: 'bg-red-100', text: '不一致或不存在', icon: '❌' }
  };

  return resultMap[result] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' };
}

/**
 * 格式化在网时长
 * @param {string} inTime - 在网时长代码
 * @returns {object} 包含颜色和文本的对象
 */
export function formatInTime(inTime) {
  const timeMap = {
    '0': { color: 'text-red-600', bg: 'bg-red-100', text: '0-3个月', icon: '📱' },
    '3': { color: 'text-orange-600', bg: 'bg-orange-100', text: '3-6个月', icon: '📱' },
    '6': { color: 'text-yellow-600', bg: 'bg-yellow-100', text: '6-12个月', icon: '📱' },
    '12': { color: 'text-blue-600', bg: 'bg-blue-100', text: '12-24个月', icon: '📱' },
    '24': { color: 'text-green-600', bg: 'bg-green-100', text: '24个月以上', icon: '📱' },
    '99': { color: 'text-gray-600', bg: 'bg-gray-100', text: '状态异常', icon: '⚠️' },
    '-1': { color: 'text-gray-600', bg: 'bg-gray-100', text: '查无记录', icon: '❓' }
  };

  return timeMap[inTime] || { color: 'text-gray-600', bg: 'bg-gray-100', text: '未知', icon: '❓' };
}

/**
 * 检查是否有风险数据
 * @param {Object} data - 数据对象
 * @returns {boolean} 是否有风险
 */
export function hasRiskData(data) {
  if (!data) return false;

  // 检查对象中是否有非0值
  return Object.values(data).some(value => {
    if (typeof value === 'number') return value > 0;
    if (typeof value === 'string') return value !== '0' && value !== '-' && value !== '';
    return false;
  });
}
