import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { MsK8sCluster } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-06-22 11:31
 */
interface MsK8sClusterCU extends ConditionUtil<MsK8sClusterCU>{
    ID:FieldUtil<MsK8sClusterCU>;
    NAME:FieldUtil<MsK8sClusterCU>;
    CLOUD_PROVIDER:FieldUtil<MsK8sClusterCU>;
    JSON_CONFIG:FieldUtil<MsK8sClusterCU>;
    DISABLED:FieldUtil<MsK8sClusterCU>;
    CREATE_TIME:FieldUtil<MsK8sClusterCU>;
    UPDATE_TIME:FieldUtil<MsK8sClusterCU>;
    CLUSTER_TYPE:FieldUtil<MsK8sClusterCU>;
}

class MsK8sClusterCUImpl extends ConditionUtilImpl<MsK8sClusterCUImpl> implements MsK8sClusterCU{ 
    newInstance(): MsK8sClusterCUImpl {
        return new MsK8sClusterCUImpl();
    } 
    get ID(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('id','id','id', this);
    }
    get NAME(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('name','name','名称', this);
    }
    get CLOUD_PROVIDER(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('cloud_provider','cloudProvider','0:阿里云,1:华为云', this);
    }
    get JSON_CONFIG(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('json_config','jsonConfig','JSON配置', this);
    }
    get DISABLED(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('disabled','disabled','禁用标记', this);
    }
    get CREATE_TIME(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('create_time','createTime','create_time', this);
    }
    get UPDATE_TIME(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('update_time','updateTime','update_time', this);
    }
    get CLUSTER_TYPE(): FieldUtil<MsK8sClusterCU>{  
        return new FieldUtil('cluster_type','clusterType','集群类型 0:托管版,1:serverless版', this);
    }
}

@Singleton 
class MsK8sClusterMU extends TableUtilImpl<MsK8sClusterCU,MsK8sCluster>{ 
    tableName  = 'ms_k8s_cluster';
    tableFields  = ['id','name','cloud_provider','json_config','disabled','create_time','update_time','cluster_type'];
    modelFields  = ['id','name','cloudProvider','jsonConfig','disabled','createTime','updateTime','clusterType'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): MsK8sClusterCU {
        return new MsK8sClusterCUImpl();
    }   

    static get ID(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('id','id','id', new MsK8sClusterCUImpl());
    }
    static get NAME(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('name','name','名称', new MsK8sClusterCUImpl());
    }
    static get CLOUD_PROVIDER(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('cloud_provider','cloudProvider','0:阿里云,1:华为云', new MsK8sClusterCUImpl());
    }
    static get JSON_CONFIG(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('json_config','jsonConfig','JSON配置', new MsK8sClusterCUImpl());
    }
    static get DISABLED(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('disabled','disabled','禁用标记', new MsK8sClusterCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('create_time','createTime','create_time', new MsK8sClusterCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('update_time','updateTime','update_time', new MsK8sClusterCUImpl());
    }
    static get CLUSTER_TYPE(): FieldUtil<MsK8sClusterCU>{ 
        return new FieldUtil('cluster_type','clusterType','集群类型 0:托管版,1:serverless版', new MsK8sClusterCUImpl());
    }

    get ID(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.ID;
    }
    get NAME(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.NAME;
    }
    get CLOUD_PROVIDER(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.CLOUD_PROVIDER;
    }
    get JSON_CONFIG(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.JSON_CONFIG;
    }
    get DISABLED(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.DISABLED;
    }
    get CREATE_TIME(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.UPDATE_TIME;
    }
    get CLUSTER_TYPE(): FieldUtil<MsK8sClusterCU>{ 
        return MsK8sClusterMU.CLUSTER_TYPE;
    }
}
export {MsK8sClusterMU, MsK8sClusterCU}
