// 模拟 API 延迟
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))

// 步骤数据类型
export interface Step {
  id: number
  title: string
  description: string
}

// 当前提案信息类型
export interface ProposalInfo {
  title: string
  date: string
  areas: string[]
  electionPhase: string
  proposer: string
  coProposers: string
  proposerPosition: string
  governmentType: string
  budgetScale: string
}

// 筛选条件类型
export interface FilterOption {
  value: string
  label: string
  hint?: string
}

export interface FilterField {
  id: string
  label: string
  options: FilterOption[]
  selectedValues: string[]
  hint?: string
}

// 获取步骤数据
export async function fetchSteps(): Promise<Step[]> {
  await delay(100)
  return [
    {
      id: 1,
      title: '设置筛选条件',
      description: '基于核心相似度维度构建预测基准'
    },
    {
      id: 2,
      title: '筛选同类法案',
      description: '形成历史相似同类法案预测基准集'
    },
    {
      id: 3,
      title: '阶段预测分析',
      description: '基于相似法案的历史数据预测模型'
    }
  ]
}

// 获取当前提案信息
export async function fetchProposalInfo(): Promise<ProposalInfo> {
  await delay(100)
  return {
    title: 'H.R.1-大而美法案',
    date: '2025年5月20日',
    areas: ['能源', '集成电路'],
    electionPhase: '执政初期/蜜月期',
    proposer: '乔迪·阿灵顿（Jodey Arrington）',
    coProposers: '共和党4人',
    proposerPosition: '委员会主席',
    governmentType: '一致政府（总统与两院同党）',
    budgetScale: '4万亿美元'
  }
}

// 获取筛选字段配置
export async function fetchFilterFields(): Promise<FilterField[]> {
  await delay(100)
  return [
    {
      id: 'policyArea',
      label: '政策领域：',
      options: [
        { value: 'energy', label: '能源' },
        { value: 'ic', label: '集成电路' },
        { value: 'ai', label: '人工智能' },
        { value: 'biotech', label: '生物技术' }
      ],
      selectedValues: ['energy', 'ic']
    },
    {
      id: 'proposerPosition',
      label: '提案人职务：',
      options: [
        { value: 'chairman', label: '委员会主席' },
        { value: 'vice_chairman', label: '委员会副主席' },
        { value: 'member', label: '普通委员' }
      ],
      selectedValues: ['chairman']
    },
    {
      id: 'governmentType',
      label: '政府结构类型：',
      options: [
        { value: 'unified', label: '一致政府' },
        { value: 'divided', label: '分裂政府' }
      ],
      selectedValues: ['unified'],
      hint: '总统所属政党同时控制国会参众两院'
    },
    {
      id: 'electionPhase',
      label: '选举周期阶段：',
      options: [
        { value: 'honeymoon', label: '执政初期/蜜月期' },
        { value: 'midterm', label: '中期选举期' },
        { value: 'election', label: '大选年' }
      ],
      selectedValues: ['honeymoon'],
      hint: '新总统上任初期，上任后约100天至1年。'
    },
    {
      id: 'budgetScale',
      label: '法案预算规模：',
      options: [
        { value: 'trillion_plus', label: '1万亿元以上' },
        { value: 'billion_plus', label: '100亿-1万亿' },
        { value: 'below_billion', label: '100亿以下' }
      ],
      selectedValues: ['trillion_plus']
    },
    {
      id: 'oppositionProposer',
      label: '对方党派提案人：',
      options: [
        { value: 'none', label: '无对方党派提案人' },
        { value: 'has', label: '有对方党派提案人' }
      ],
      selectedValues: ['none']
    },
    {
      id: 'proposalTime',
      label: '提案时间：',
      options: [
        { value: 'recent_5', label: '近五年' },
        { value: 'recent_10', label: '近十年' },
        { value: 'all', label: '全部' }
      ],
      selectedValues: ['recent_5']
    }
  ]
}

// 提交筛选条件
export async function submitFilters(filters: Record<string, string[]>): Promise<{ success: boolean }> {
  await delay(300)
  console.log('提交筛选条件:', filters)
  return { success: true }
}

// 筛选结果统计类型
export interface FilterStats {
  totalBills: number
  becameLaw: number
  notPassedOrShelved: number
  medianDays: number
  passRate: number
  selectedCount: number
}

// 法案信息类型
export interface BillInfo {
  id: string
  title: string
  proposalDate: string
  areas: string[]
  electionPhase: string
  proposer: string
  coProposers: string
  proposerPosition: string
  governmentType: string
  budgetScale: string
  passDays: number
  selected: boolean
}

// 获取筛选结果统计
export async function fetchFilterStats(): Promise<FilterStats> {
  await delay(100)
  return {
    totalBills: 50,
    becameLaw: 24,
    notPassedOrShelved: 26,
    medianDays: 223,
    passRate: 48.5,
    selectedCount: 50
  }
}

// 阶段预测分析类型
export type RiskLevel = 'passed' | 'high' | 'medium' | 'low'

export interface StatItem {
  value: string
  label: string
}

export interface PredictionPhase {
  id: number
  title: string
  description: string
  riskLevel: RiskLevel
  progressLevel: number
  estimatedDays: string
  modelInputs: string[]
  supportingFacts: {
    title: string
    basedOn: string
    stats: StatItem[]
  }
}

export interface PredictionAnalysis {
  title: string
  subtitle: string
  overallRisk: RiskLevel
  overallProgressLevel: number
  overallEstimatedDays: string
  highlightText: string
  phases: PredictionPhase[]
}

// 获取阶段预测分析数据
export async function fetchPredictionAnalysis(): Promise<PredictionAnalysis> {
  await delay(200)
  return {
    title: '立法进展阶段预测分析',
    subtitle: '基于50个相似法案的历史数据与预测模型',
    overallRisk: 'high',
    overallProgressLevel: 3,
    overallEstimatedDays: '预计耗时120~150天',
    highlightText: '《大而美法案》的通过概率非常高。\n\n该法案由众议院共和党领导层在5月正式提出，作为特朗普第二任期核心经济议程，旨在通过一揽子税收、贸易改革重塑经济。到6月初，法案已快速通过关键的筹款委员会和预算委员会审议，进入众议院辩论阶段。共和党当时控制众议院，党内团结支持；白宫已明确表示强烈支持。虽然民主党普遍反对，但共和党凭借微弱优势足以在众议院通过。主要不确定在于参议院，随着中期选举临近民主党议员可能支持，或通过预算和解程序（只需简单多数）规避阻挠议事。因此，该法案在6月初已势在必行，最终成法几无悬念。',
    phases: [
      {
        id: 1,
        title: '阶段一：法案提出',
        description: '提案提交至参议院/众议院，此阶段为流程起点',
        riskLevel: 'passed',
        progressLevel: 3,
        estimatedDays: '已通过',
        modelInputs: [
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。',
          '确定法案的动态特征：随着流程推进才产生的特征，这是分阶段预测的核心。包括流程特征：在当前节点已停留时间、距国会会休会剩余时间；投票特征：上一节点投票结果（如委员会投票的赞成比例、党派支持度）。修正案特征：法案是否被附加了有争议的修正外部环境特征：当前新闻情绪指数、公众舆论压力、关键利益集团的态度。',
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。'
        ],
        supportingFacts: {
          title: '支撑预测的客观事实',
          basedOn: '基于142项历史提案',
          stats: [
            { value: '100%', label: '提案提交率' },
            { value: '142', label: '匹配法案数' },
            { value: '62.7%', label: '进入委员会比例' },
            { value: '85天', label: '平均等待分配时间' }
          ]
        }
      },
      {
        id: 2,
        title: '阶段二：参议院通过',
        description: '包括委员会审议、听证、修正和全院表决',
        riskLevel: 'high',
        progressLevel: 3,
        estimatedDays: '预计耗时60~120天',
        modelInputs: [
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。',
          '确定法案的动态特征：随着流程推进才产生的特征，这是分阶段预测的核心。包括流程特征：在当前节点已停留时间、距国会会休会剩余时间；投票特征：上一节点投票结果（如委员会投票的赞成比例、党派支持度）。修正案特征：法案是否被附加了有争议的修正案；外部环境特征：当前新闻情绪指数、公众舆论压力、关键利益集团的态度。',
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。'
        ],
        supportingFacts: {
          title: '支撑预测的客观事实',
          basedOn: '基于98项历史提案',
          stats: [
            { value: '62.7%', label: '历史通过率' },
            { value: '85天', label: '平均耗时' },
            { value: '78%', label: '委员会主席支持率' },
            { value: '31%', label: '对方党派平均支持' },
            { value: '8.5次', label: '平均听证会次数' },
            { value: '14.2个', label: '平均修正案数' },
            { value: '92.3%', label: '本党派支持率' },
            { value: '68天', label: '中位数耗时' }
          ]
        }
      },
      {
        id: 3,
        title: '阶段三：众议院通过',
        description: '众议院审议、委员会分配和全院表决',
        riskLevel: 'medium',
        progressLevel: 2,
        estimatedDays: '预计耗时20~45天',
        modelInputs: [
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。',
          '确定法案的动态特征：随着流程推进才产生的特征，这是分阶段预测的核心。包括流程特征：在当前节点已停留时间、距国会会休会剩余时间；投票特征：上一节点投票结果（如委员会投票的赞成比例、党派支持度）。修正案特征：法案是否被附加了有争议的修正案；外部环境特征：当前新闻情绪指数、公众舆论压力、关键利益集团的态度。',
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。'
        ],
        supportingFacts: {
          title: '支撑预测的客观事实',
          basedOn: '基于98项历史提案',
          stats: [
            { value: '62.7%', label: '历史通过率' },
            { value: '85天', label: '平均耗时' },
            { value: '78%', label: '本党派支持率' },
            { value: '31%', label: '对方党派平均支持' },
            { value: '45%', label: '规则委员会支持率' },
            { value: '14.2个', label: '平均修正案数' },
            { value: '49.5天', label: '中位数耗时' },
            { value: '32%', label: '快速通道使用率' }
          ]
        }
      },
      {
        id: 4,
        title: '阶段四：两院协商',
        description: '协商委员会解决两院版本差异，形成统一文本',
        riskLevel: 'medium',
        progressLevel: 2,
        estimatedDays: '预计耗时7~14天',
        modelInputs: [
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。',
          '确定法案的动态特征：随着流程推进才产生的特征，这是分阶段预测的核心。包括流程特征：在当前节点已停留时间、距国会会休会剩余时间；投票特征：上一节点投票结果（如委员会投票的赞成比例、党派支持度）。修正案特征：法案是否被附加了有争议的修正案；外部环境特征：当前新闻情绪指数、公众舆论压力、关键利益集团的态度。',
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。'
        ],
        supportingFacts: {
          title: '支撑预测的客观事实',
          basedOn: '基于96项历史提案',
          stats: [
            { value: '62.7%', label: '历史通过率' },
            { value: '85天', label: '平均耗时' },
            { value: '8.5个', label: '平均差异条款数' },
            { value: '3.2轮', label: '平均协商轮次' },
            { value: '78%', label: '协商成功法案比例' },
            { value: '42%', label: '需要领导层介入比例' },
            { value: '55天', label: '中位数耗时' },
            { value: '15%', label: '协商失败后重启比例' }
          ]
        }
      },
      {
        id: 5,
        title: '阶段五：总统签署',
        description: '总统审议、可能否决或签署成为法律',
        riskLevel: 'low',
        progressLevel: 1,
        estimatedDays: '预计耗时1~5天',
        modelInputs: [
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。',
          '确定法案的动态特征：随着流程推进才产生的特征，这是分阶段预测的核心。包括流程特征：在当前节点已停留时间、距国会会休会剩余时间；投票特征：上一节点投票结果（如委员会投票的赞成比例、党派支持度）。修正案特征：法案是否被附加了有争议的修正案；外部环境特征：当前新闻情绪指数、公众舆论压力、关键利益集团的态度。',
          '确定法案的固有特征：法案提出时确定的特征，如提案人党派、资历、共同提案人网络强度、法案主题分类、文本复杂度。这些特征在所有节点预测中都可使用。'
        ],
        supportingFacts: {
          title: '支撑预测的客观事实',
          basedOn: '基于33次送法总统法案',
          stats: [
            { value: '62.7%', label: '历史签署率' },
            { value: '12天', label: '平均审议时间' },
            { value: '24.2%', label: '否决率' },
            { value: '3.2轮', label: '口袋否决率' },
            { value: '78%', label: '一致政府时签署率' },
            { value: '42%', label: '分立政府时签署率' },
            { value: '9天', label: '中位数审议时间' },
            { value: '15%', label: '附带声明签署比例' }
          ]
        }
      }
    ]
  }
}

// 获取法案列表
export async function fetchBillList(): Promise<BillInfo[]> {
  await delay(200)
  return [
    {
      id: 'bill-1',
      title: '激励创新的交通走廊以少碳和温室气体排放，提供允许对公共交通系统投资的税收结构，并帮助化石燃料劳动力向可持续工作领域转型',
      proposalDate: '2025年5月20日',
      areas: ['能源', '集成电路'],
      electionPhase: '执政初期/蜜月期',
      proposer: '乔迪·阿灵顿（Jodey Arrington）',
      coProposers: '共和党4人；民主党2人',
      proposerPosition: '委员会主席',
      governmentType: '一致政府（总统与两院同党）',
      budgetScale: '7500亿美元',
      passDays: 245,
      selected: true
    },
    {
      id: 'bill-2',
      title: '重新授权国家海洋和大气管理局切萨皮克湾办公室及其他用途',
      proposalDate: '2025年5月20日',
      areas: ['能源', '集成电路'],
      electionPhase: '执政初期/蜜月期',
      proposer: '乔迪·阿灵顿（Jodey Arrington）',
      coProposers: '共和党4人；民主党2人',
      proposerPosition: '委员会主席',
      governmentType: '一致政府（总统与两院同党）',
      budgetScale: '7500亿美元',
      passDays: 245,
      selected: true
    },
    {
      id: 'bill-3',
      title: '特朗普关税透明法案',
      proposalDate: '2025年5月20日',
      areas: ['能源', '集成电路'],
      electionPhase: '执政初期/蜜月期',
      proposer: '乔迪·阿灵顿（Jodey Arrington）',
      coProposers: '共和党4人；民主党2人',
      proposerPosition: '委员会主席',
      governmentType: '一致政府（总统与两院同党）',
      budgetScale: '7500亿美元',
      passDays: 245,
      selected: true
    },
    {
      id: 'bill-4',
      title: '禁止向关注国家销售最先进的人工智能芯片，并促进芯片安全高效地向海外获批美国人员转让',
      proposalDate: '2025年5月20日',
      areas: ['能源', '集成电路'],
      electionPhase: '执政初期/蜜月期',
      proposer: '乔迪·阿灵顿（Jodey Arrington）',
      coProposers: '共和党4人；民主党2人',
      proposerPosition: '委员会主席',
      governmentType: '一致政府（总统与两院同党）',
      budgetScale: '7500亿美元',
      passDays: 245,
      selected: true
    }
  ]
}
