package tech.easyflow.agent.runtime.media;

import java.util.Arrays;

/**
 * 校验并规范化后的 Agent 图片。
 *
 * @param bytes 图片字节
 * @param mimeType MIME 类型
 * @param extension 规范化扩展名
 * @param width 宽度
 * @param height 高度
 * @param sha256 SHA-256 摘要
 */
public record AgentImageData(byte[] bytes,
                             String mimeType,
                             String extension,
                             int width,
                             int height,
                             String sha256) {

    /**
     * 创建不可变图片数据。
     */
    public AgentImageData {
        bytes = bytes == null ? new byte[0] : Arrays.copyOf(bytes, bytes.length);
    }

    /** @return 图片字节副本 */
    @Override
    public byte[] bytes() { return Arrays.copyOf(bytes, bytes.length); }
}
