/*
 * Copyright (c) 2025-2026, Michael Yang 杨福海 (fuhai999@gmail.com).
 * Licensed under the GNU Lesser General Public License (LGPL), Version 3.0.
 */
package com.easyagents.flow.core.chain.repository;

import com.easyagents.flow.core.chain.ChainDefinition;

/**
 * 工作流实例级定义快照仓储。
 */
public interface ChainDefinitionSnapshotRepository {

    /**
     * 保存实例启动时的定义快照。
     *
     * @param instanceId 工作流实例 ID
     * @param definition 定义快照
     */
    void save(String instanceId, ChainDefinition definition);

    /**
     * 加载实例启动时的定义快照。
     *
     * @param instanceId 工作流实例 ID
     * @return 定义快照；不存在时返回 null
     */
    ChainDefinition load(String instanceId);

    /**
     * 删除定义快照。
     *
     * @param instanceId 工作流实例 ID
     */
    void remove(String instanceId);
}
