package com.mortals.xhx.base.system.gentable.model;

import java.util.Date;
import java.util.List;

import com.mortals.framework.model.BaseEntityLong;
/**
*
* Description:Gentable
* date: 2021-9-29 9:35:30
*/
public class GentableEntity extends GentableEntityExt{
    private static final long serialVersionUID = 1632879330094L;


    /**
    * 表名称
    */
    private String tableName;

    /**
    * 表描述
    */
    private String tableComment;

    /**
    * 关联子表的表名
    */
    private String subTableName;

    /**
    * 子表关联的外键名
    */
    private String subTableFkName;

    /**
    * 实体类名称
    */
    private String className;

    /**
    * 使用的模板（crud单表操作 tree树表操作）
    */
    private String tplCategory;

    /**
    * 生成包路径
    */
    private String packageName;

    /**
    * 生成模块名
    */
    private String moduleName;

    /**
    * 生成业务名
    */
    private String businessName;

    /**
    * 生成功能名
    */
    private String functionName;

    /**
    * 生成功能作者
    */
    private String functionAuthor;

    /**
    * 缓存服务方式（0,无，1.静态实体缓存，2.动态实体缓存）
    */
    private Integer cacheServiceType;

    /**
    * 生成代码方式（0.zip压缩包 1.自定义路径）
    */
    private Integer genType;

    /**
    * 分表方式（0.无，1.年，2.月，3.日，4.hash取余）
    */
    private Integer dividedTableType;

    /**
     * 是否生成feign结构(0.否，1.是)
     */
    private Integer genFeign;

    /**
     * 生成feign接口，消费应用工程名称如（workflow-platform）
     */
    private String feignAppName;

    /**
     * 是否生成对外api结构（0,否，1.是）
     */
    private Integer genApi;

    /**
    * 生成路径（不填默认项目路径）
    */
    private String genPath;

    /**
    * 其它生成选项
    */
    private String options;

    /**
    * 备注
    */
    private String remark;

    /**
    * 变更时间
    */
    private Date updateTime;

    /**
    * 变更用户loginName
    */
    private String updateUser;

    /**
    * 创建时间
    */
    private Date createTime;

    /**
    * 创建用户loginName
    */
    private String createUser;


    public GentableEntity(){

    }
    /**
    * 获取 表名称
    * @return tableName
    */
    public String getTableName() {
        return this.tableName;
    }
    /**
    * 设置 表名称
    * @param tableName
    */
    public void setTableName(String tableName) {
        this.tableName = tableName;
    }
    /**
    * 获取 表描述
    * @return tableComment
    */
    public String getTableComment() {
        return this.tableComment;
    }
    /**
    * 设置 表描述
    * @param tableComment
    */
    public void setTableComment(String tableComment) {
        this.tableComment = tableComment;
    }
    /**
    * 获取 关联子表的表名
    * @return subTableName
    */
    public String getSubTableName() {
        return this.subTableName;
    }
    /**
    * 设置 关联子表的表名
    * @param subTableName
    */
    public void setSubTableName(String subTableName) {
        this.subTableName = subTableName;
    }
    /**
    * 获取 子表关联的外键名
    * @return subTableFkName
    */
    public String getSubTableFkName() {
        return this.subTableFkName;
    }
    /**
    * 设置 子表关联的外键名
    * @param subTableFkName
    */
    public void setSubTableFkName(String subTableFkName) {
        this.subTableFkName = subTableFkName;
    }
    /**
    * 获取 实体类名称
    * @return className
    */
    public String getClassName() {
        return this.className;
    }
    /**
    * 设置 实体类名称
    * @param className
    */
    public void setClassName(String className) {
        this.className = className;
    }
    /**
    * 获取 使用的模板（crud单表操作 tree树表操作）
    * @return tplCategory
    */
    public String getTplCategory() {
        return this.tplCategory;
    }
    /**
    * 设置 使用的模板（crud单表操作 tree树表操作）
    * @param tplCategory
    */
    public void setTplCategory(String tplCategory) {
        this.tplCategory = tplCategory;
    }
    /**
    * 获取 生成包路径
    * @return packageName
    */
    public String getPackageName() {
        return this.packageName;
    }
    /**
    * 设置 生成包路径
    * @param packageName
    */
    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }
    /**
    * 获取 生成模块名
    * @return moduleName
    */
    public String getModuleName() {
        return this.moduleName;
    }
    /**
    * 设置 生成模块名
    * @param moduleName
    */
    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }
    /**
    * 获取 生成业务名
    * @return businessName
    */
    public String getBusinessName() {
        return this.businessName;
    }
    /**
    * 设置 生成业务名
    * @param businessName
    */
    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }
    /**
    * 获取 生成功能名
    * @return functionName
    */
    public String getFunctionName() {
        return this.functionName;
    }
    /**
    * 设置 生成功能名
    * @param functionName
    */
    public void setFunctionName(String functionName) {
        this.functionName = functionName;
    }
    /**
    * 获取 生成功能作者
    * @return functionAuthor
    */
    public String getFunctionAuthor() {
        return this.functionAuthor;
    }
    /**
    * 设置 生成功能作者
    * @param functionAuthor
    */
    public void setFunctionAuthor(String functionAuthor) {
        this.functionAuthor = functionAuthor;
    }
    /**
    * 获取 缓存服务方式（0,无，1.静态实体缓存，2.动态实体缓存）
    * @return cacheServiceType
    */
    public Integer getCacheServiceType() {
        return this.cacheServiceType;
    }
    /**
    * 设置 缓存服务方式（0,无，1.静态实体缓存，2.动态实体缓存）
    * @param cacheServiceType
    */
    public void setCacheServiceType(Integer cacheServiceType) {
        this.cacheServiceType = cacheServiceType;
    }
    /**
    * 获取 生成代码方式（0.zip压缩包 1.自定义路径）
    * @return genType
    */
    public Integer getGenType() {
        return this.genType;
    }
    /**
    * 设置 生成代码方式（0.zip压缩包 1.自定义路径）
    * @param genType
    */
    public void setGenType(Integer genType) {
        this.genType = genType;
    }
    /**
    * 获取 分表方式（0.无，1.年，2.月，3.日，4.hash取余）
    * @return dividedTableType
    */
    public Integer getDividedTableType() {
        return this.dividedTableType;
    }
    /**
    * 设置 分表方式（0.无，1.年，2.月，3.日，4.hash取余）
    * @param dividedTableType
    */
    public void setDividedTableType(Integer dividedTableType) {
        this.dividedTableType = dividedTableType;
    }
    /**
     * 获取 是否生成feign结构(0.否，1.是)
     * @return genFeign
     */
    public Integer getGenFeign() {
        return this.genFeign;
    }
    /**
     * 设置 是否生成feign结构(0.否，1.是)
     * @param genFeign
     */
    public void setGenFeign(Integer genFeign) {
        this.genFeign = genFeign;
    }
    /**
     * 获取 生成feign接口，消费应用工程名称如（workflow-platform）
     * @return feignAppName
     */
    public String getFeignAppName() {
        return this.feignAppName;
    }
    /**
     * 设置 生成feign接口，消费应用工程名称如（workflow-platform）
     * @param feignAppName
     */
    public void setFeignAppName(String feignAppName) {
        this.feignAppName = feignAppName;
    }
    /**
     * 获取 是否生成对外api结构（0,否，1.是）
     * @return genApi
     */
    public Integer getGenApi() {
        return this.genApi;
    }
    /**
     * 设置 是否生成对外api结构（0,否，1.是）
     * @param genApi
     */
    public void setGenApi(Integer genApi) {
        this.genApi = genApi;
    }
    /**
    * 获取 生成路径（不填默认项目路径）
    * @return genPath
    */
    public String getGenPath() {
        return this.genPath;
    }
    /**
    * 设置 生成路径（不填默认项目路径）
    * @param genPath
    */
    public void setGenPath(String genPath) {
        this.genPath = genPath;
    }
    /**
    * 获取 其它生成选项
    * @return options
    */
    public String getOptions() {
        return this.options;
    }
    /**
    * 设置 其它生成选项
    * @param options
    */
    public void setOptions(String options) {
        this.options = options;
    }
    /**
    * 获取 备注
    * @return remark
    */
    public String getRemark() {
        return this.remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark) {
        this.remark = remark;
    }
    /**
    * 获取 变更时间
    * @return updateTime
    */
    public Date getUpdateTime() {
        return this.updateTime;
    }
    /**
    * 设置 变更时间
    * @param updateTime
    */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    /**
    * 获取 变更用户loginName
    * @return updateUser
    */
    public String getUpdateUser() {
        return this.updateUser;
    }
    /**
    * 设置 变更用户loginName
    * @param updateUser
    */
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    /**
    * 获取 创建时间
    * @return createTime
    */
    public Date getCreateTime() {
        return this.createTime;
    }
    /**
    * 设置 创建时间
    * @param createTime
    */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    /**
    * 获取 创建用户loginName
    * @return createUser
    */
    public String getCreateUser() {
        return this.createUser;
    }
    /**
    * 设置 创建用户loginName
    * @param createUser
    */
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    @Override
    public int hashCode() {
        return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null)
            return false;
        if (obj instanceof GentableEntity) {
            GentableEntity tmp = (GentableEntity) obj;
            if (this.getId().longValue() == tmp.getId().longValue()) {
                return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb
        .append(",id:").append(getId())
                .append(",tableName:").append(getTableName())
                .append(",tableComment:").append(getTableComment())
                .append(",subTableName:").append(getSubTableName())
                .append(",subTableFkName:").append(getSubTableFkName())
                .append(",className:").append(getClassName())
                .append(",tplCategory:").append(getTplCategory())
                .append(",packageName:").append(getPackageName())
                .append(",moduleName:").append(getModuleName())
                .append(",businessName:").append(getBusinessName())
                .append(",functionName:").append(getFunctionName())
                .append(",functionAuthor:").append(getFunctionAuthor())
                .append(",cacheServiceType:").append(getCacheServiceType())
                .append(",genType:").append(getGenType())
                .append(",dividedTableType:").append(getDividedTableType())
                .append(",genPath:").append(getGenPath())
                .append(",options:").append(getOptions())
                .append(",remark:").append(getRemark())
                .append(",updateTime:").append(getUpdateTime())
                .append(",updateUser:").append(getUpdateUser())
                .append(",createTime:").append(getCreateTime())
                .append(",createUser:").append(getCreateUser())
        ;
        return sb.toString();
    }

    public void initAttrValue(){
         this.tableName = null;
         this.tableComment = null;
         this.subTableName = null;
         this.subTableFkName = null;
         this.className = null;
         this.tplCategory = null;
         this.packageName = null;
         this.moduleName = null;
         this.businessName = null;
         this.functionName = null;
         this.functionAuthor = null;
         this.cacheServiceType = null;
         this.genType = null;
         this.dividedTableType = null;
         this.genPath = null;
         this.options = null;
         this.remark = null;
         this.updateTime = null;
         this.updateUser = null;
         this.createTime = null;
         this.createUser = null;
    }
}