package tech.easyflow.approval.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 ApprovalFlowStepAssigneeBase implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @Column(comment = "审批步骤ID")
    private BigInteger stepId;

    @Column(comment = "审批对象类型")
    private String assigneeType;

    @Column(comment = "审批对象ID")
    private BigInteger targetId;

    @Column(comment = "审批对象编码")
    private String targetCode;

    @Column(comment = "审批对象名称")
    private String targetName;

    @Column(comment = "是否包含子部门")
    private Integer includeChildren;

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

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

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

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

    /**
     * 获取主键。
     *
     * @return 主键
     */
    public BigInteger getId() {
        return id;
    }

    /**
     * 设置主键。
     *
     * @param id 主键
     */
    public void setId(BigInteger id) {
        this.id = id;
    }

    /**
     * 获取审批步骤 ID。
     *
     * @return 审批步骤 ID
     */
    public BigInteger getStepId() {
        return stepId;
    }

    /**
     * 设置审批步骤 ID。
     *
     * @param stepId 审批步骤 ID
     */
    public void setStepId(BigInteger stepId) {
        this.stepId = stepId;
    }

    /**
     * 获取审批对象类型。
     *
     * @return 审批对象类型
     */
    public String getAssigneeType() {
        return assigneeType;
    }

    /**
     * 设置审批对象类型。
     *
     * @param assigneeType 审批对象类型
     */
    public void setAssigneeType(String assigneeType) {
        this.assigneeType = assigneeType;
    }

    /**
     * 获取审批对象 ID。
     *
     * @return 审批对象 ID
     */
    public BigInteger getTargetId() {
        return targetId;
    }

    /**
     * 设置审批对象 ID。
     *
     * @param targetId 审批对象 ID
     */
    public void setTargetId(BigInteger targetId) {
        this.targetId = targetId;
    }

    /**
     * 获取审批对象编码。
     *
     * @return 审批对象编码
     */
    public String getTargetCode() {
        return targetCode;
    }

    /**
     * 设置审批对象编码。
     *
     * @param targetCode 审批对象编码
     */
    public void setTargetCode(String targetCode) {
        this.targetCode = targetCode;
    }

    /**
     * 获取审批对象名称。
     *
     * @return 审批对象名称
     */
    public String getTargetName() {
        return targetName;
    }

    /**
     * 设置审批对象名称。
     *
     * @param targetName 审批对象名称
     */
    public void setTargetName(String targetName) {
        this.targetName = targetName;
    }

    /**
     * 获取是否包含子部门。
     *
     * @return 1 表示包含，0 表示不包含
     */
    public Integer getIncludeChildren() {
        return includeChildren;
    }

    /**
     * 设置是否包含子部门。
     *
     * @param includeChildren 1 表示包含，0 表示不包含
     */
    public void setIncludeChildren(Integer includeChildren) {
        this.includeChildren = includeChildren;
    }

    /**
     * 获取创建时间。
     *
     * @return 创建时间
     */
    public Date getCreated() {
        return created;
    }

    /**
     * 设置创建时间。
     *
     * @param created 创建时间
     */
    public void setCreated(Date created) {
        this.created = created;
    }

    /**
     * 获取创建者。
     *
     * @return 创建者 ID
     */
    public BigInteger getCreatedBy() {
        return createdBy;
    }

    /**
     * 设置创建者。
     *
     * @param createdBy 创建者 ID
     */
    public void setCreatedBy(BigInteger createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 获取修改时间。
     *
     * @return 修改时间
     */
    public Date getModified() {
        return modified;
    }

    /**
     * 设置修改时间。
     *
     * @param modified 修改时间
     */
    public void setModified(Date modified) {
        this.modified = modified;
    }

    /**
     * 获取修改者。
     *
     * @return 修改者 ID
     */
    public BigInteger getModifiedBy() {
        return modifiedBy;
    }

    /**
     * 设置修改者。
     *
     * @param modifiedBy 修改者 ID
     */
    public void setModifiedBy(BigInteger modifiedBy) {
        this.modifiedBy = modifiedBy;
    }
}
