package com.gzzm.lobster.workspace;

/**
 * ResolvedFile —— 统一解析的文件字节 / Unified resolved file bytes.
 *
 * <p>由 {@link WorkspaceResourceResolver} 产出，供沙箱 staging 落盘使用；
 * 承载原始 displayName（仅审计展示，不可直接参与路径拼接——落盘路径由调用方 sanitize 后决定）.
 */
public final class ResolvedFile {

    private final byte[] bytes;
    private final String mimeType;
    private final String displayName;
    private final String extension;
    private final long size;

    public ResolvedFile(byte[] bytes, String mimeType, String displayName, String extension) {
        this.bytes = bytes == null ? new byte[0] : bytes;
        this.mimeType = mimeType;
        this.displayName = displayName == null ? "unnamed" : displayName;
        this.extension = extension == null ? "bin" : extension;
        this.size = this.bytes.length;
    }

    public byte[] getBytes() { return bytes; }
    public String getMimeType() { return mimeType; }
    public String getDisplayName() { return displayName; }
    public String getExtension() { return extension; }
    public long getSize() { return size; }
}
