package tech.easyflow.ai.entity.base;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;

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

/**
 * 知识库分享记录基础字段。
 */
public class KnowledgeShareBase implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Generator, value = "snowFlakeId", comment = "ID")
    private BigInteger id;

    @Column(comment = "知识库ID")
    private BigInteger knowledgeId;

    @Column(comment = "分享类型")
    private String shareType;

    @Column(comment = "分享访问密钥哈希")
    private String shareKeyHash;

    @Column(comment = "分享状态")
    private String status;

    @Column(comment = "授权范围")
    private String permissionSet;

    @Column(comment = "过期时间")
    private Date expiresAt;

    @Column(tenantId = true, comment = "租户ID")
    private BigInteger tenantId;

    @Column(comment = "部门ID")
    private BigInteger deptId;

    @Column(comment = "创建时间")
    private Date created;

    @Column(comment = "创建人")
    private BigInteger createdBy;

    @Column(comment = "修改时间")
    private Date modified;

    @Column(comment = "修改人")
    private BigInteger modifiedBy;

    public BigInteger getId() {
        return id;
    }

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

    public BigInteger getKnowledgeId() {
        return knowledgeId;
    }

    public void setKnowledgeId(BigInteger knowledgeId) {
        this.knowledgeId = knowledgeId;
    }

    public String getShareType() {
        return shareType;
    }

    public void setShareType(String shareType) {
        this.shareType = shareType;
    }

    public String getShareKeyHash() {
        return shareKeyHash;
    }

    public void setShareKeyHash(String shareKeyHash) {
        this.shareKeyHash = shareKeyHash;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getPermissionSet() {
        return permissionSet;
    }

    public void setPermissionSet(String permissionSet) {
        this.permissionSet = permissionSet;
    }

    public Date getExpiresAt() {
        return expiresAt;
    }

    public void setExpiresAt(Date expiresAt) {
        this.expiresAt = expiresAt;
    }

    public BigInteger getTenantId() {
        return tenantId;
    }

    public void setTenantId(BigInteger tenantId) {
        this.tenantId = tenantId;
    }

    public BigInteger getDeptId() {
        return deptId;
    }

    public void setDeptId(BigInteger deptId) {
        this.deptId = deptId;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public BigInteger getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(BigInteger createdBy) {
        this.createdBy = createdBy;
    }

    public Date getModified() {
        return modified;
    }

    public void setModified(Date modified) {
        this.modified = modified;
    }

    public BigInteger getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(BigInteger modifiedBy) {
        this.modifiedBy = modifiedBy;
    }
}
