import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { DevopsRedis } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-02-09 10:54
 */
interface DevopsRedisCU extends ConditionUtil<DevopsRedisCU>{
    ID:FieldUtil<DevopsRedisCU>;
    CLOUD_PLATFORM:FieldUtil<DevopsRedisCU>;
    CLOUD_ACCOUNT_ID:FieldUtil<DevopsRedisCU>;
    REGION_ID:FieldUtil<DevopsRedisCU>;
    INSTANCE_ID:FieldUtil<DevopsRedisCU>;
    IP:FieldUtil<DevopsRedisCU>;
    REDIS_TYPE:FieldUtil<DevopsRedisCU>;
    PORT:FieldUtil<DevopsRedisCU>;
    INSTANCE_NAME:FieldUtil<DevopsRedisCU>;
    BUSINESS_GROUP:FieldUtil<DevopsRedisCU>;
    INSTANCE_SPECIFICATIONS:FieldUtil<DevopsRedisCU>;
    CPU:FieldUtil<DevopsRedisCU>;
    MEMORY:FieldUtil<DevopsRedisCU>;
    VERSION:FieldUtil<DevopsRedisCU>;
    RUNNING_STATE:FieldUtil<DevopsRedisCU>;
    BILLING_WAY:FieldUtil<DevopsRedisCU>;
    BUY_TIME:FieldUtil<DevopsRedisCU>;
    EXPIRE_TIME:FieldUtil<DevopsRedisCU>;
    REMARK:FieldUtil<DevopsRedisCU>;
    CREATE_TIME:FieldUtil<DevopsRedisCU>;
    UPDATE_TIME:FieldUtil<DevopsRedisCU>;
}

class DevopsRedisCUImpl extends ConditionUtilImpl<DevopsRedisCUImpl> implements DevopsRedisCU{ 
    newInstance(): DevopsRedisCUImpl {
        return new DevopsRedisCUImpl();
    } 
    get ID(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('ID','id','主键', this);
    }
    get CLOUD_PLATFORM(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('CLOUD_PLATFORM','cloudPlatform','所属平台（1-阿里云；2-华为云；）', this);
    }
    get CLOUD_ACCOUNT_ID(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('CLOUD_ACCOUNT_ID','cloudAccountId','', this);
    }
    get REGION_ID(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('REGION_ID','regionId','区域', this);
    }
    get INSTANCE_ID(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('INSTANCE_ID','instanceId','主机实例id', this);
    }
    get IP(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('IP','ip','主机ip(内网地址)', this);
    }
    get REDIS_TYPE(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('REDIS_TYPE','redisType','实例类型,如标准版、集群版', this);
    }
    get PORT(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('PORT','port','端口', this);
    }
    get INSTANCE_NAME(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('INSTANCE_NAME','instanceName','实例名称', this);
    }
    get BUSINESS_GROUP(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('BUSINESS_GROUP','businessGroup','所属项目组', this);
    }
    get INSTANCE_SPECIFICATIONS(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('INSTANCE_SPECIFICATIONS','instanceSpecifications','实例规格', this);
    }
    get CPU(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('CPU','cpu','cpu', this);
    }
    get MEMORY(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('MEMORY','memory','内存', this);
    }
    get VERSION(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('VERSION','version','redis版本', this);
    }
    get RUNNING_STATE(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('RUNNING_STATE','runningState','运行状态', this);
    }
    get BILLING_WAY(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('BILLING_WAY','billingWay','计费方式', this);
    }
    get BUY_TIME(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('BUY_TIME','buyTime','购买时间', this);
    }
    get EXPIRE_TIME(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('EXPIRE_TIME','expireTime','到期时间', this);
    }
    get REMARK(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('REMARK','remark','描述', this);
    }
    get CREATE_TIME(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<DevopsRedisCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
}

@Singleton 
class DevopsRedisMU extends TableUtilImpl<DevopsRedisCU,DevopsRedis>{ 
    tableName  = 'devops_redis';
    tableFields  = ['id','cloud_platform','cloud_account_id','region_id','instance_id','ip','redis_type','port','instance_name','business_group','instance_specifications','cpu','memory','version','running_state','billing_way','buy_time','expire_time','remark','create_time','update_time'];
    modelFields  = ['id','cloudPlatform','cloudAccountId','regionId','instanceId','ip','redisType','port','instanceName','businessGroup','instanceSpecifications','cpu','memory','version','runningState','billingWay','buyTime','expireTime','remark','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): DevopsRedisCU {
        return new DevopsRedisCUImpl();
    }   

    static get ID(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('ID','id','主键', new DevopsRedisCUImpl());
    }
    static get CLOUD_PLATFORM(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('CLOUD_PLATFORM','cloudPlatform','所属平台（1-阿里云；2-华为云；）', new DevopsRedisCUImpl());
    }
    static get CLOUD_ACCOUNT_ID(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('CLOUD_ACCOUNT_ID','cloudAccountId','', new DevopsRedisCUImpl());
    }
    static get REGION_ID(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('REGION_ID','regionId','区域', new DevopsRedisCUImpl());
    }
    static get INSTANCE_ID(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('INSTANCE_ID','instanceId','主机实例id', new DevopsRedisCUImpl());
    }
    static get IP(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('IP','ip','主机ip(内网地址)', new DevopsRedisCUImpl());
    }
    static get REDIS_TYPE(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('REDIS_TYPE','redisType','实例类型,如标准版、集群版', new DevopsRedisCUImpl());
    }
    static get PORT(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('PORT','port','端口', new DevopsRedisCUImpl());
    }
    static get INSTANCE_NAME(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('INSTANCE_NAME','instanceName','实例名称', new DevopsRedisCUImpl());
    }
    static get BUSINESS_GROUP(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('BUSINESS_GROUP','businessGroup','所属项目组', new DevopsRedisCUImpl());
    }
    static get INSTANCE_SPECIFICATIONS(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('INSTANCE_SPECIFICATIONS','instanceSpecifications','实例规格', new DevopsRedisCUImpl());
    }
    static get CPU(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('CPU','cpu','cpu', new DevopsRedisCUImpl());
    }
    static get MEMORY(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('MEMORY','memory','内存', new DevopsRedisCUImpl());
    }
    static get VERSION(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('VERSION','version','redis版本', new DevopsRedisCUImpl());
    }
    static get RUNNING_STATE(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('RUNNING_STATE','runningState','运行状态', new DevopsRedisCUImpl());
    }
    static get BILLING_WAY(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('BILLING_WAY','billingWay','计费方式', new DevopsRedisCUImpl());
    }
    static get BUY_TIME(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('BUY_TIME','buyTime','购买时间', new DevopsRedisCUImpl());
    }
    static get EXPIRE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('EXPIRE_TIME','expireTime','到期时间', new DevopsRedisCUImpl());
    }
    static get REMARK(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('REMARK','remark','描述', new DevopsRedisCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new DevopsRedisCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new DevopsRedisCUImpl());
    }

    get ID(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.ID;
    }
    get CLOUD_PLATFORM(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.CLOUD_PLATFORM;
    }
    get CLOUD_ACCOUNT_ID(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.CLOUD_ACCOUNT_ID;
    }
    get REGION_ID(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.REGION_ID;
    }
    get INSTANCE_ID(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.INSTANCE_ID;
    }
    get IP(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.IP;
    }
    get REDIS_TYPE(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.REDIS_TYPE;
    }
    get PORT(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.PORT;
    }
    get INSTANCE_NAME(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.INSTANCE_NAME;
    }
    get BUSINESS_GROUP(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.BUSINESS_GROUP;
    }
    get INSTANCE_SPECIFICATIONS(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.INSTANCE_SPECIFICATIONS;
    }
    get CPU(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.CPU;
    }
    get MEMORY(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.MEMORY;
    }
    get VERSION(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.VERSION;
    }
    get RUNNING_STATE(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.RUNNING_STATE;
    }
    get BILLING_WAY(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.BILLING_WAY;
    }
    get BUY_TIME(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.BUY_TIME;
    }
    get EXPIRE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.EXPIRE_TIME;
    }
    get REMARK(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.REMARK;
    }
    get CREATE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<DevopsRedisCU>{ 
        return DevopsRedisMU.UPDATE_TIME;
    }
}
export {DevopsRedisMU, DevopsRedisCU}
