package tech.easyflow.ai.documentimport;

/**
 * 批量导入建单上下文。
 *
 * @author Codex
 * @since 2026-08-02
 */
public final class DocumentImportBatchCreateContext {

    private final ImportCallerContext caller;
    private final String idempotencyKeyHash;
    private final String requestDigest;
    private final String duplicatePolicy;
    private final String requestedStrategyJson;

    /**
     * 创建批量导入建单上下文。
     *
     * @param caller 调用者上下文
     * @param idempotencyKeyHash 幂等键哈希
     * @param requestDigest 请求摘要
     * @param duplicatePolicy 重复文件策略
     * @param requestedStrategyJson 请求分块策略 JSON
     */
    public DocumentImportBatchCreateContext(ImportCallerContext caller,
                                            String idempotencyKeyHash,
                                            String requestDigest,
                                            String duplicatePolicy,
                                            String requestedStrategyJson) {
        this.caller = caller;
        this.idempotencyKeyHash = idempotencyKeyHash;
        this.requestDigest = requestDigest;
        this.duplicatePolicy = duplicatePolicy;
        this.requestedStrategyJson = requestedStrategyJson;
    }

    /**
     * 获取调用者上下文。
     *
     * @return 调用者上下文
     */
    public ImportCallerContext getCaller() {
        return caller;
    }

    /**
     * 获取幂等键哈希。
     *
     * @return 幂等键哈希
     */
    public String getIdempotencyKeyHash() {
        return idempotencyKeyHash;
    }

    /**
     * 获取请求摘要。
     *
     * @return 请求摘要
     */
    public String getRequestDigest() {
        return requestDigest;
    }

    /**
     * 获取重复文件策略。
     *
     * @return 重复文件策略
     */
    public String getDuplicatePolicy() {
        return duplicatePolicy;
    }

    /**
     * 获取请求分块策略 JSON。
     *
     * @return 分块策略 JSON
     */
    public String getRequestedStrategyJson() {
        return requestedStrategyJson;
    }
}
