package tech.easyflow.skill.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import tech.easyflow.common.entity.DateEntity;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

/**
 * Skill 通用资源实体，统一承载文本与二进制包内文件。
 */
@Table("tb_skill_resource")
public class SkillResource extends DateEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Generator, value = "snowFlakeId")
    private BigInteger id;
    @Column(tenantId = true)
    private BigInteger tenantId;
    private BigInteger skillId;
    private String path;
    private String normalizedPath;
    private String mediaType;
    private Boolean isText;
    private String textContent;
    private String contentRef;
    private String contentHash;
    private Long size;
    private Date created;
    private BigInteger createdBy;
    private Date modified;
    private BigInteger modifiedBy;

    public BigInteger getId() { return id; }
    public void setId(BigInteger id) { this.id = id; }
    public BigInteger getTenantId() { return tenantId; }
    public void setTenantId(BigInteger tenantId) { this.tenantId = tenantId; }
    public BigInteger getSkillId() { return skillId; }
    public void setSkillId(BigInteger skillId) { this.skillId = skillId; }
    public String getPath() { return path; }
    public void setPath(String path) { this.path = path; }
    public String getNormalizedPath() { return normalizedPath; }
    public void setNormalizedPath(String normalizedPath) { this.normalizedPath = normalizedPath; }
    public String getMediaType() { return mediaType; }
    public void setMediaType(String mediaType) { this.mediaType = mediaType; }
    public Boolean getIsText() { return isText; }
    public void setIsText(Boolean text) { isText = text; }
    public String getTextContent() { return textContent; }
    public void setTextContent(String textContent) { this.textContent = textContent; }
    public String getContentRef() { return contentRef; }
    public void setContentRef(String contentRef) { this.contentRef = contentRef; }
    public String getContentHash() { return contentHash; }
    public void setContentHash(String contentHash) { this.contentHash = contentHash; }
    public Long getSize() { return size; }
    public void setSize(Long size) { this.size = size; }
    @Override public Date getCreated() { return created; }
    @Override public void setCreated(Date created) { this.created = created; }
    public BigInteger getCreatedBy() { return createdBy; }
    public void setCreatedBy(BigInteger createdBy) { this.createdBy = createdBy; }
    @Override public Date getModified() { return modified; }
    @Override public void setModified(Date modified) { this.modified = modified; }
    public BigInteger getModifiedBy() { return modifiedBy; }
    public void setModifiedBy(BigInteger modifiedBy) { this.modifiedBy = modifiedBy; }
}
