package tech.easyflow.common.cache;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Redis 字段化版本状态快照。
 */
public final class VersionedFields {

    private final long version;
    private final Map<String, Object> fields;

    /**
     * 创建字段化状态快照。
     *
     * @param version 当前版本
     * @param fields 字段值
     */
    public VersionedFields(long version, Map<String, Object> fields) {
        this.version = version;
        this.fields = fields == null
                ? Collections.emptyMap()
                : Collections.unmodifiableMap(new LinkedHashMap<>(fields));
    }

    /**
     * 获取状态版本。
     *
     * @return 当前版本
     */
    public long getVersion() {
        return version;
    }

    /**
     * 获取字段快照。
     *
     * @return 不可变字段映射
     */
    public Map<String, Object> getFields() {
        return fields;
    }
}
