package com.highdatas.mdm.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldStrategy;
import com.highdatas.mdm.pojo.MasterAuthorType;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author kimi
 * @since 2020-03-23
 */
@TableName("master_author")
public class MasterAuthor extends Model<MasterAuthor> {

    private static final long serialVersionUID = 1L;
    /*
     *主键
     * */
    private String id;
    /*
     *权限类型
     * */
    private MasterAuthorType type;
    /*
     *表名
     * */
    @TableField("table_name")
    private String tableName;
    /*
     *是否自动添加字段
     * */
    @TableField("field_auto")
    private Boolean fieldAuto;
    /*
     *是否是用户组
     * */
    @TableField("user_group")
    private Boolean userGroup;

    /*
     * 生成版本是是否自动添加
     * */

    @TableField("maintain_auto")
    private Boolean maintainAuto;
    /*
     *创建人id
     * */
    @TableField("character_id")
    private String characterId;
    /*
     *主题id
     * */
    @TableField("menu_id")
    private String menuId;
    /*
     *字段版本id
     * */
    @TableField(value = "maintain_field_id", strategy = FieldStrategy.IGNORED)
    private String maintainFieldId;

    /*
     *是否激活
     * */
    private Boolean active;
    /*
     *是否注册
     * */
    private Boolean subscribe;
    /*
     *是否增量
     * */
    private Boolean increment;
    /*
     *创建时间
     * */
    @TableField("create_time")
    private Date createTime;
    /*
     *æ›´æ–°æ—¶é—´
     * */
    @TableField("update_time")
    private Date updateTime;
    /*
     * 字段列表
     * */
    private transient List<MasterAuthorDetail> fields;
    /*
     *主题名称
     * */
    private transient String menuName;
    /*
     *是否显示
     * */
    private transient Boolean isShow;
    /*
     *父级主题列表
     * */
    private transient List<SysMenu> parentMenuList;


    public Boolean getIncrement() {
        return increment;
    }

    public MasterAuthor setIncrement(Boolean increment) {
        this.increment = increment;
        return this;
    }

    public Boolean getShow() {
        return isShow;
    }

    public MasterAuthor setShow(Boolean show) {
        isShow = show;
        return this;
    }

    public String getMenuName() {
        return menuName;
    }

    public MasterAuthor setMenuName(String menuName) {
        this.menuName = menuName;
        return this;
    }

    public Boolean getSubscribe() {
        return subscribe;
    }

    public MasterAuthor setSubscribe(Boolean subscribe) {
        this.subscribe = subscribe;
        return this;
    }

    public Boolean getUserGroup() {
        return userGroup;
    }

    public MasterAuthor setUserGroup(Boolean userGroup) {
        this.userGroup = userGroup;
        return this;
    }

    public Boolean getMaintainAuto() {
        return maintainAuto;
    }

    public MasterAuthor setMaintainAuto(Boolean maintainAuto) {
        this.maintainAuto = maintainAuto;
        return this;
    }

    public String getMenuId() {
        return menuId;
    }

    public MasterAuthor setMenuId(String menuId) {
        this.menuId = menuId;
        return this;
    }

    public Boolean getFieldAuto() {
        return fieldAuto;
    }

    public MasterAuthor setFieldAuto(Boolean fieldAuto) {
        this.fieldAuto = fieldAuto;
        return this;
    }

    public List<MasterAuthorDetail> getFields() {
        return fields;
    }

    public MasterAuthor setFields(List<MasterAuthorDetail> fields) {
        this.fields = fields;
        return this;
    }

    public String getMaintainFieldId() {
        return maintainFieldId;
    }

    public MasterAuthor setMaintainFieldId(String maintainFieldId) {
        this.maintainFieldId = maintainFieldId;
        return this;
    }

    public String getCharacterId() {
        return characterId;
    }

    public MasterAuthor setCharacterId(String characterId) {
        this.characterId = characterId;
        return this;
    }

    public String getId() {
        return id;
    }

    public MasterAuthor setId(String id) {
        this.id = id;
        return this;
    }
    public MasterAuthorType getType() {
        return type;
    }

    public MasterAuthor setType(MasterAuthorType type) {
        this.type = type;
        return this;
    }
    public String getTableName() {
        return tableName;
    }

    public MasterAuthor setTableName(String tableName) {
        this.tableName = tableName;
        return this;
    }
    public Boolean getActive() {
        return active;
    }

    public MasterAuthor setActive(Boolean active) {
        this.active = active;
        return this;
    }
    public Date getCreateTime() {
        return createTime;
    }

    public MasterAuthor setCreateTime(Date createTime) {
        this.createTime = createTime;
        return this;
    }
    public Date getUpdateTime() {
        return updateTime;
    }

    public MasterAuthor setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
        return this;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "MasterAuthor{" +
        "id=" + id +
        ", type=" + type +
        ", tableName=" + tableName +
        ", active=" + active +
        ", createTime=" + createTime +
        ", updateTime=" + updateTime +
        "}";
    }

    public MasterAuthor setParentMenuList(List<SysMenu> parentMenuList) {
        this.parentMenuList = parentMenuList;
        return this;
    }

    public List<SysMenu> getParentMenuList() {
        return parentMenuList;
    }
}