import { ref } from 'vue';

export function useTaxChunkingOrchestrator() {
  const documentTree = ref([
    { id: 1, level: 1, icon: '📄', text: '财税〔2023〕7号 - 研发费用公告' },
    { id: 2, level: 1, icon: '📖', text: '第一章 总则' },
    { id: 3, level: 2, icon: '📌', text: '第一条 (制定依据)' },
    { id: 4, level: 2, icon: '📌', text: '第二条 (适用范围)' },
    { id: 5, level: 1, icon: '📖', text: '第二章 扣除标准' },
    { id: 6, level: 2, icon: '📌', text: '第三条 (一般企业标准)' },
    { id: 7, level: 2, icon: '📌', text: '第四条 (制造业特惠)' },
    { id: 8, level: 1, icon: '📖', text: '第三章 申报流程' },
    { id: 9, level: 2, icon: '📌', text: '第五条 (申报材料)' },
    { id: 10, level: 2, icon: '📌', text: '第六条 (审核程序)' },
  ]);

  const previewChunks = ref([
    {
      source: '财税〔2023〕7号',
      chapter: '第二章 扣除标准',
      title: '第三条',
      content:
        '企业开展研发活动中实际发生的研发费用，未形成无形资产计入当期损益的，在按规定据实扣除的基础上，自2023年1月1日起，再按照实际发生额的100%在税前加计扣除；形成无形资产的，自2023年1月1日起，按照无形资产成本的200%在税前摊销。',
      tokens: 145,
      hash: '8a2b4f3e',
      table: null,
    },
    {
      source: '财税〔2023〕7号',
      chapter: '第二章 扣除标准',
      title: '第四条',
      content:
        '制造业企业开展研发活动中实际发生的研发费用，未形成无形资产计入当期损益的，在按规定据实扣除的基础上，自2023年1月1日起，再按照实际发生额的120%在税前加计扣除。',
      tokens: 98,
      hash: '7c1d9a2b',
      table: {
        headers: ['费用类型', '扣除比例', '适用范围'],
        rows: [
          ['人员人工费用', '100%', '全部企业'],
          ['直接投入费用', '100%', '全部企业'],
          ['折旧费用', '100%', '全部企业'],
        ],
      },
    },
  ]);

  const config = ref({
    granularity: 'article',
    injectFilename: true,
    injectParent: true,
    injectValidity: true,
    tableKeep: true,
    appendixMount: true,
  });

  const accuracy = ref(98);
  const selectedNode = ref(null);

  const loadDocument = async () => {
    console.log('Loading document...');
  };

  const updateConfig = () => {
    console.log('Updating config...', config.value);
  };

  const saveRules = async () => {
    console.log('Saving rules...', config.value);
  };

  return {
    documentTree,
    previewChunks,
    config,
    accuracy,
    selectedNode,
    loadDocument,
    updateConfig,
    saveRules,
  };
}
