import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { CnProject } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-05-31 16:21
 */
interface CnProjectCU extends ConditionUtil<CnProjectCU>{
    ID:FieldUtil<CnProjectCU>;
    SERVICE_CENTER_ID:FieldUtil<CnProjectCU>;
    APP_ID:FieldUtil<CnProjectCU>;
    CODE:FieldUtil<CnProjectCU>;
    NAME:FieldUtil<CnProjectCU>;
    DESCRIBE:FieldUtil<CnProjectCU>;
    GITLAB_URL:FieldUtil<CnProjectCU>;
    USERNAME:FieldUtil<CnProjectCU>;
    PASSWORD:FieldUtil<CnProjectCU>;
    IS_SUBMODULE:FieldUtil<CnProjectCU>;
    SUBMODULE_NAME:FieldUtil<CnProjectCU>;
    TOOL_VERSION:FieldUtil<CnProjectCU>;
    PACK_TYPE:FieldUtil<CnProjectCU>;
    TAPD_ID:FieldUtil<CnProjectCU>;
    TYPE:FieldUtil<CnProjectCU>;
    HEALTHY_URL:FieldUtil<CnProjectCU>;
    DELETED:FieldUtil<CnProjectCU>;
    CREATE_USER_ID:FieldUtil<CnProjectCU>;
    CREATE_TIME:FieldUtil<CnProjectCU>;
    UPDATE_USER_ID:FieldUtil<CnProjectCU>;
    UPDATE_TIME:FieldUtil<CnProjectCU>;
}

class CnProjectCUImpl extends ConditionUtilImpl<CnProjectCUImpl> implements CnProjectCU{ 
    newInstance(): CnProjectCUImpl {
        return new CnProjectCUImpl();
    } 
    get ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('id','id','主键', this);
    }
    get SERVICE_CENTER_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('service_center_id','serviceCenterId','服务中心主键', this);
    }
    get APP_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('app_id','appId','应用主键', this);
    }
    get CODE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('code','code','项目代码', this);
    }
    get NAME(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('name','name','名称', this);
    }
    get DESCRIBE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('describe','describe','描述', this);
    }
    get GITLAB_URL(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('gitlab_url','gitlabUrl','GitLab地址：', this);
    }
    get USERNAME(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('username','username','GitLab用户', this);
    }
    get PASSWORD(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('password','password','GitLab密码', this);
    }
    get IS_SUBMODULE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('is_submodule','isSubmodule','是否子模块', this);
    }
    get SUBMODULE_NAME(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('submodule_name','submoduleName','子模块名称', this);
    }
    get TOOL_VERSION(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('tool_version','toolVersion','例如：4.8', this);
    }
    get PACK_TYPE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('pack_type','packType','1-jar,2-war', this);
    }
    get TAPD_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('tapd_id','tapdId','tapdId', this);
    }
    get TYPE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('type','type','项目类型 0-javaDeamon,1-javaweb', this);
    }
    get HEALTHY_URL(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('healthy_url','healthyUrl','健康检查url', this);
    }
    get DELETED(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('deleted','deleted','删除标记', this);
    }
    get CREATE_USER_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('create_user_id','createUserId','创建人', this);
    }
    get CREATE_TIME(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('create_time','createTime','创建时间', this);
    }
    get UPDATE_USER_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('update_user_id','updateUserId','更新人', this);
    }
    get UPDATE_TIME(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('update_time','updateTime','更新时间', this);
    }
}

@Singleton 
class CnProjectMU extends TableUtilImpl<CnProjectCU,CnProject>{ 
    tableName  = 'cn_project';
    tableFields  = ['id','service_center_id','app_id','code','name','describe','gitlab_url','username','password','is_submodule','submodule_name','tool_version','pack_type','tapd_id','type','healthy_url','deleted','create_user_id','create_time','update_user_id','update_time'];
    modelFields  = ['id','serviceCenterId','appId','code','name','describe','gitlabUrl','username','password','isSubmodule','submoduleName','toolVersion','packType','tapdId','type','healthyUrl','deleted','createUserId','createTime','updateUserId','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): CnProjectCU {
        return new CnProjectCUImpl();
    }   

    static get ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('id','id','主键', new CnProjectCUImpl());
    }
    static get SERVICE_CENTER_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('service_center_id','serviceCenterId','服务中心主键', new CnProjectCUImpl());
    }
    static get APP_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('app_id','appId','应用主键', new CnProjectCUImpl());
    }
    static get CODE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('code','code','项目代码', new CnProjectCUImpl());
    }
    static get NAME(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('name','name','名称', new CnProjectCUImpl());
    }
    static get DESCRIBE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('describe','describe','描述', new CnProjectCUImpl());
    }
    static get GITLAB_URL(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('gitlab_url','gitlabUrl','GitLab地址：', new CnProjectCUImpl());
    }
    static get USERNAME(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('username','username','GitLab用户', new CnProjectCUImpl());
    }
    static get PASSWORD(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('password','password','GitLab密码', new CnProjectCUImpl());
    }
    static get IS_SUBMODULE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('is_submodule','isSubmodule','是否子模块', new CnProjectCUImpl());
    }
    static get SUBMODULE_NAME(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('submodule_name','submoduleName','子模块名称', new CnProjectCUImpl());
    }
    static get TOOL_VERSION(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('tool_version','toolVersion','例如：4.8', new CnProjectCUImpl());
    }
    static get PACK_TYPE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('pack_type','packType','1-jar,2-war', new CnProjectCUImpl());
    }
    static get TAPD_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('tapd_id','tapdId','tapdId', new CnProjectCUImpl());
    }
    static get TYPE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('type','type','项目类型 0-javaDeamon,1-javaweb', new CnProjectCUImpl());
    }
    static get HEALTHY_URL(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('healthy_url','healthyUrl','健康检查url', new CnProjectCUImpl());
    }
    static get DELETED(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('deleted','deleted','删除标记', new CnProjectCUImpl());
    }
    static get CREATE_USER_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('create_user_id','createUserId','创建人', new CnProjectCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('create_time','createTime','创建时间', new CnProjectCUImpl());
    }
    static get UPDATE_USER_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('update_user_id','updateUserId','更新人', new CnProjectCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('update_time','updateTime','更新时间', new CnProjectCUImpl());
    }

    get ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.ID;
    }
    get SERVICE_CENTER_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.SERVICE_CENTER_ID;
    }
    get APP_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.APP_ID;
    }
    get CODE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.CODE;
    }
    get NAME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.NAME;
    }
    get DESCRIBE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.DESCRIBE;
    }
    get GITLAB_URL(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.GITLAB_URL;
    }
    get USERNAME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.USERNAME;
    }
    get PASSWORD(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.PASSWORD;
    }
    get IS_SUBMODULE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.IS_SUBMODULE;
    }
    get SUBMODULE_NAME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.SUBMODULE_NAME;
    }
    get TOOL_VERSION(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.TOOL_VERSION;
    }
    get PACK_TYPE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.PACK_TYPE;
    }
    get TAPD_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.TAPD_ID;
    }
    get TYPE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.TYPE;
    }
    get HEALTHY_URL(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.HEALTHY_URL;
    }
    get DELETED(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.DELETED;
    }
    get CREATE_USER_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.CREATE_USER_ID;
    }
    get CREATE_TIME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.CREATE_TIME;
    }
    get UPDATE_USER_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.UPDATE_USER_ID;
    }
    get UPDATE_TIME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.UPDATE_TIME;
    }
}
export {CnProjectMU, CnProjectCU}
