import { MarkerType } from "@xyflow/react";

// 生成思维导图数据的函数
function generateMindMapData(levels: number, nodesPerLevel: number) {
    const nodes = [];
    const edges = [];

    // 添加根节点
    nodes.push({
        id: 'root',
        data: { label: '核心主题', level: 0 },
        type: 'graph-node',
        position: { x: 0, y: 0 }
    });

    // 为每一层生成节点
    for (let level = 1; level <= levels; level++) {
        const angleStep = (2 * Math.PI) / nodesPerLevel;
        const radius = level * 200; // 每层的半径

        for (let i = 0; i < nodesPerLevel; i++) {
            const angle = i * angleStep;
            const nodeId = `node-${level}-${i}`;

            // 计算节点位置
            const x = Math.cos(angle) * radius;
            const y = Math.sin(angle) * radius;

            // 添加节点
            nodes.push({
                id: nodeId,
                data: { label: `主题${level}-${i}`, level },
                type: 'graph-node',
                position: { x, y }
            });

            // 添加边
            // 第一层连接到根节点，其他层连接到上一层的节点
            const sourceId = level === 1 ? 'root' : `node-${level - 1}-${Math.floor(i / 2)}`;
            edges.push({
                id: `edge-${level}-${i}`,
                source: sourceId,
                target: nodeId,
                type: 'graph-edge',
            });
        }
    }

    return { nodes, edges };
}

// 生成测试数据 - 可以调整参数来控制规模
// 参数1: 层级数量
// 参数2: 每层节点数量
const { nodes: initialNodes, edges: initialEdges } = generateMindMapData(2, 3);

export { initialNodes, initialEdges };