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-11-09 14:51
 */
interface CnProjectCU extends ConditionUtil<CnProjectCU>{
    ID:FieldUtil<CnProjectCU>;
    SERVICE_CENTER_ID:FieldUtil<CnProjectCU>;
    APP_ID:FieldUtil<CnProjectCU>;
    NAME:FieldUtil<CnProjectCU>;
    DESCRIBE:FieldUtil<CnProjectCU>;
    GITLAB_URL:FieldUtil<CnProjectCU>;
    TAPD_ID: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>;
    MAIN_CLASS:FieldUtil<CnProjectCU>;
    LANGUAGE:FieldUtil<CnProjectCU>;
    BUILD_TYPE:FieldUtil<CnProjectCU>;
    BUILD_OUT_PATH:FieldUtil<CnProjectCU>;
    BUILD_SCRIPT:FieldUtil<CnProjectCU>;
    START_TYPE:FieldUtil<CnProjectCU>;
    START_SCRIPT:FieldUtil<CnProjectCU>;
    START_PARAMS:FieldUtil<CnProjectCU>;
    BUILD_TOOL_ID: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 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 TAPD_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('tapd_id','tapdId','tapdId', 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);
    }
    get MAIN_CLASS(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('main_class','mainClass','主类', this);
    }
    get LANGUAGE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('language','language','开发语言:Java、Nodejs、Go', this);
    }
    get BUILD_TYPE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('build_type','buildType','构建类型:jar、war、node、go', this);
    }
    get BUILD_OUT_PATH(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('build_out_path','buildOutPath','构建输出路径地址', this);
    }
    get BUILD_SCRIPT(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('build_script','buildScript','构建命令脚本', this);
    }
    get START_TYPE(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('start_type','startType','启动方式：0-java wrapper、1-springboot jar、2-tomcat、3-自定', this);
    }
    get START_SCRIPT(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('start_script','startScript','自定义启动脚本', this);
    }
    get START_PARAMS(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('start_params','startParams','自定义启动参数：-Dxxxxxx=aaa', this);
    }
    get BUILD_TOOL_ID(): FieldUtil<CnProjectCU>{  
        return new FieldUtil('build_tool_id','buildToolId','构建工具ID', this);
    }
}

@Singleton 
class CnProjectMU extends TableUtilImpl<CnProjectCU,CnProject>{ 
    tableName  = 'cn_project';
    tableFields  = ['id','service_center_id','app_id','name','describe','gitlab_url','tapd_id','healthy_url','deleted','create_user_id','create_time','update_user_id','update_time','main_class','language','build_type','build_out_path','build_script','start_type','start_script','start_params','build_tool_id'];
    modelFields  = ['id','serviceCenterId','appId','name','describe','gitlabUrl','tapdId','healthyUrl','deleted','createUserId','createTime','updateUserId','updateTime','mainClass','language','buildType','buildOutPath','buildScript','startType','startScript','startParams','buildToolId'];
    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 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 TAPD_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('tapd_id','tapdId','tapdId', 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());
    }
    static get MAIN_CLASS(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('main_class','mainClass','主类', new CnProjectCUImpl());
    }
    static get LANGUAGE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('language','language','开发语言:Java、Nodejs、Go', new CnProjectCUImpl());
    }
    static get BUILD_TYPE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('build_type','buildType','构建类型:jar、war、node、go', new CnProjectCUImpl());
    }
    static get BUILD_OUT_PATH(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('build_out_path','buildOutPath','构建输出路径地址', new CnProjectCUImpl());
    }
    static get BUILD_SCRIPT(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('build_script','buildScript','构建命令脚本', new CnProjectCUImpl());
    }
    static get START_TYPE(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('start_type','startType','启动方式：0-java wrapper、1-springboot jar、2-tomcat、3-自定', new CnProjectCUImpl());
    }
    static get START_SCRIPT(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('start_script','startScript','自定义启动脚本', new CnProjectCUImpl());
    }
    static get START_PARAMS(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('start_params','startParams','自定义启动参数：-Dxxxxxx=aaa', new CnProjectCUImpl());
    }
    static get BUILD_TOOL_ID(): FieldUtil<CnProjectCU>{ 
        return new FieldUtil('build_tool_id','buildToolId','构建工具ID', 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 NAME(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.NAME;
    }
    get DESCRIBE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.DESCRIBE;
    }
    get GITLAB_URL(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.GITLAB_URL;
    }
    get TAPD_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.TAPD_ID;
    }
    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;
    }
    get MAIN_CLASS(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.MAIN_CLASS;
    }
    get LANGUAGE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.LANGUAGE;
    }
    get BUILD_TYPE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.BUILD_TYPE;
    }
    get BUILD_OUT_PATH(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.BUILD_OUT_PATH;
    }
    get BUILD_SCRIPT(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.BUILD_SCRIPT;
    }
    get START_TYPE(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.START_TYPE;
    }
    get START_SCRIPT(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.START_SCRIPT;
    }
    get START_PARAMS(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.START_PARAMS;
    }
    get BUILD_TOOL_ID(): FieldUtil<CnProjectCU>{ 
        return CnProjectMU.BUILD_TOOL_ID;
    }
}
export {CnProjectMU, CnProjectCU}
