package tech.easyflow.agent.runtime.media;

import java.time.Instant;

/**
 * Redis 中保存的 Agent 临时图片上传凭据。
 */
public class AgentMediaUploadRecord {

    private String uploadId;
    private String tenantId;
    private String userId;
    private String mode;
    private String agentId;
    private String sessionId;
    private String objectKey;
    private String originalName;
    private String mimeType;
    private String extension;
    private long size;
    private int width;
    private int height;
    private String sha256;
    private String formalReference;
    private Instant createdAt;
    private Instant expiresAt;

    /** @return 上传 ID */
    public String getUploadId() { return uploadId; }
    /** @param uploadId 上传 ID */
    public void setUploadId(String uploadId) { this.uploadId = uploadId; }
    /** @return 租户 ID */
    public String getTenantId() { return tenantId; }
    /** @param tenantId 租户 ID */
    public void setTenantId(String tenantId) { this.tenantId = tenantId; }
    /** @return 用户 ID */
    public String getUserId() { return userId; }
    /** @param userId 用户 ID */
    public void setUserId(String userId) { this.userId = userId; }
    /** @return 聊天模式 */
    public String getMode() { return mode; }
    /** @param mode 聊天模式 */
    public void setMode(String mode) { this.mode = mode; }
    /** @return Agent ID */
    public String getAgentId() { return agentId; }
    /** @param agentId Agent ID */
    public void setAgentId(String agentId) { this.agentId = agentId; }
    /** @return 会话 ID */
    public String getSessionId() { return sessionId; }
    /** @param sessionId 会话 ID */
    public void setSessionId(String sessionId) { this.sessionId = sessionId; }
    /** @return 对象键 */
    public String getObjectKey() { return objectKey; }
    /** @param objectKey 对象键 */
    public void setObjectKey(String objectKey) { this.objectKey = objectKey; }
    /** @return 原文件名 */
    public String getOriginalName() { return originalName; }
    /** @param originalName 原文件名 */
    public void setOriginalName(String originalName) { this.originalName = originalName; }
    /** @return MIME 类型 */
    public String getMimeType() { return mimeType; }
    /** @param mimeType MIME 类型 */
    public void setMimeType(String mimeType) { this.mimeType = mimeType; }
    /** @return 扩展名 */
    public String getExtension() { return extension; }
    /** @param extension 扩展名 */
    public void setExtension(String extension) { this.extension = extension; }
    /** @return 文件大小 */
    public long getSize() { return size; }
    /** @param size 文件大小 */
    public void setSize(long size) { this.size = size; }
    /** @return 图片宽度 */
    public int getWidth() { return width; }
    /** @param width 图片宽度 */
    public void setWidth(int width) { this.width = width; }
    /** @return 图片高度 */
    public int getHeight() { return height; }
    /** @param height 图片高度 */
    public void setHeight(int height) { this.height = height; }
    /** @return SHA-256 */
    public String getSha256() { return sha256; }
    /** @param sha256 SHA-256 */
    public void setSha256(String sha256) { this.sha256 = sha256; }
    /** @return 已完成归档的正式图片引用 */
    public String getFormalReference() { return formalReference; }
    /** @param formalReference 已完成归档的正式图片引用 */
    public void setFormalReference(String formalReference) { this.formalReference = formalReference; }
    /** @return 创建时间 */
    public Instant getCreatedAt() { return createdAt; }
    /** @param createdAt 创建时间 */
    public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
    /** @return 过期时间 */
    public Instant getExpiresAt() { return expiresAt; }
    /** @param expiresAt 过期时间 */
    public void setExpiresAt(Instant expiresAt) { this.expiresAt = expiresAt; }
}
