package cn.nianxx.thhotel.platform.message.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * 来源消息媒体引用实体。externalUrl 只在受控原文读取场景返回，普通查询不得暴露。
 */
@TableName("platform_source_message_media")
public class SourceMessageMediaEntity {

    /** 媒体引用记录内部主键。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 所属 SourceMessage Inbox ID。 */
    private Long inboxId;
    /** 媒体类型稳定代码，例如 INLINE_IMAGE 或 ATTACHMENT。 */
    private String mediaType;
    /** 附件或正文图片文件名，外部系统未提供时为空。 */
    private String fileName;
    /** 媒体 MIME 类型，例如 image/png 或 application/pdf。 */
    private String contentType;
    /** 媒体大小字节数，外部系统未提供时为空。 */
    private Long sizeBytes;
    /** AgentBus 返回的长期有效媒体 URL，普通查询接口不得返回。 */
    private String externalUrl;
    /** 外部系统媒体 ID，用于排查和追溯。 */
    private String externalMediaId;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getInboxId() {
        return inboxId;
    }

    public void setInboxId(Long inboxId) {
        this.inboxId = inboxId;
    }

    public String getMediaType() {
        return mediaType;
    }

    public void setMediaType(String mediaType) {
        this.mediaType = mediaType;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getContentType() {
        return contentType;
    }

    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public Long getSizeBytes() {
        return sizeBytes;
    }

    public void setSizeBytes(Long sizeBytes) {
        this.sizeBytes = sizeBytes;
    }

    public String getExternalUrl() {
        return externalUrl;
    }

    public void setExternalUrl(String externalUrl) {
        this.externalUrl = externalUrl;
    }

    public String getExternalMediaId() {
        return externalMediaId;
    }

    public void setExternalMediaId(String externalMediaId) {
        this.externalMediaId = externalMediaId;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
}
