import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { BmViewModel } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-07-31 13:17
 */
interface BmViewModelCU extends ConditionUtil<BmViewModelCU>{
    ID:FieldUtil<BmViewModelCU>;
    BM_PROJECT_ID:FieldUtil<BmViewModelCU>;
    VERSION_ID:FieldUtil<BmViewModelCU>;
    VERSION_NO:FieldUtil<BmViewModelCU>;
    NAME:FieldUtil<BmViewModelCU>;
    TABLE_NAME:FieldUtil<BmViewModelCU>;
    DESCRIPTION:FieldUtil<BmViewModelCU>;
    RELEASED:FieldUtil<BmViewModelCU>;
    BUILD_METHOD:FieldUtil<BmViewModelCU>;
    BUILD_SQL:FieldUtil<BmViewModelCU>;
    DATASOURCE_ID:FieldUtil<BmViewModelCU>;
    CREATE_USER_ID:FieldUtil<BmViewModelCU>;
    UPDATE_USER_ID:FieldUtil<BmViewModelCU>;
    CREATE_TIME:FieldUtil<BmViewModelCU>;
    UPDATE_TIME:FieldUtil<BmViewModelCU>;
}

class BmViewModelCUImpl extends ConditionUtilImpl<BmViewModelCUImpl> implements BmViewModelCU{ 
    newInstance(): BmViewModelCUImpl {
        return new BmViewModelCUImpl();
    } 
    get ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('ID','id','', this);
    }
    get BM_PROJECT_ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('BM_PROJECT_ID','bmProjectId','', this);
    }
    get VERSION_ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('VERSION_ID','versionId','', this);
    }
    get VERSION_NO(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('VERSION_NO','versionNo','', this);
    }
    get NAME(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('NAME','name','', this);
    }
    get TABLE_NAME(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('TABLE_NAME','tableName','', this);
    }
    get DESCRIPTION(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('DESCRIPTION','description','', this);
    }
    get RELEASED(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('RELEASED','released','', this);
    }
    get BUILD_METHOD(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('BUILD_METHOD','buildMethod','', this);
    }
    get BUILD_SQL(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('BUILD_SQL','buildSql','', this);
    }
    get DATASOURCE_ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('DATASOURCE_ID','datasourceId','', this);
    }
    get CREATE_USER_ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('CREATE_USER_ID','createUserId','', this);
    }
    get UPDATE_USER_ID(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('UPDATE_USER_ID','updateUserId','', this);
    }
    get CREATE_TIME(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('CREATE_TIME','createTime','', this);
    }
    get UPDATE_TIME(): FieldUtil<BmViewModelCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','', this);
    }
}

@Singleton 
class BmViewModelMU extends TableUtilImpl<BmViewModelCU,BmViewModel>{ 
    tableName  = 'bm_view_model';
    tableFields  = ['ID','BM_PROJECT_ID','VERSION_ID','VERSION_NO','NAME','TABLE_NAME','DESCRIPTION','RELEASED','BUILD_METHOD','BUILD_SQL','DATASOURCE_ID','CREATE_USER_ID','UPDATE_USER_ID','CREATE_TIME','UPDATE_TIME'];
    modelFields  = ['id','bmProjectId','versionId','versionNo','name','tableName','description','released','buildMethod','buildSql','datasourceId','createUserId','updateUserId','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): BmViewModelCU {
        return new BmViewModelCUImpl();
    }   

    static get ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('ID','id','', new BmViewModelCUImpl());
    }
    static get BM_PROJECT_ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('BM_PROJECT_ID','bmProjectId','', new BmViewModelCUImpl());
    }
    static get VERSION_ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('VERSION_ID','versionId','', new BmViewModelCUImpl());
    }
    static get VERSION_NO(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('VERSION_NO','versionNo','', new BmViewModelCUImpl());
    }
    static get NAME(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('NAME','name','', new BmViewModelCUImpl());
    }
    static get TABLE_NAME(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('TABLE_NAME','tableName','', new BmViewModelCUImpl());
    }
    static get DESCRIPTION(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('DESCRIPTION','description','', new BmViewModelCUImpl());
    }
    static get RELEASED(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('RELEASED','released','', new BmViewModelCUImpl());
    }
    static get BUILD_METHOD(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('BUILD_METHOD','buildMethod','', new BmViewModelCUImpl());
    }
    static get BUILD_SQL(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('BUILD_SQL','buildSql','', new BmViewModelCUImpl());
    }
    static get DATASOURCE_ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('DATASOURCE_ID','datasourceId','', new BmViewModelCUImpl());
    }
    static get CREATE_USER_ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('CREATE_USER_ID','createUserId','', new BmViewModelCUImpl());
    }
    static get UPDATE_USER_ID(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('UPDATE_USER_ID','updateUserId','', new BmViewModelCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','', new BmViewModelCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<BmViewModelCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','', new BmViewModelCUImpl());
    }

    get ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.ID;
    }
    get BM_PROJECT_ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.BM_PROJECT_ID;
    }
    get VERSION_ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.VERSION_ID;
    }
    get VERSION_NO(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.VERSION_NO;
    }
    get NAME(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.NAME;
    }
    get TABLE_NAME(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.TABLE_NAME;
    }
    get DESCRIPTION(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.DESCRIPTION;
    }
    get RELEASED(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.RELEASED;
    }
    get BUILD_METHOD(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.BUILD_METHOD;
    }
    get BUILD_SQL(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.BUILD_SQL;
    }
    get DATASOURCE_ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.DATASOURCE_ID;
    }
    get CREATE_USER_ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.CREATE_USER_ID;
    }
    get UPDATE_USER_ID(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.UPDATE_USER_ID;
    }
    get CREATE_TIME(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<BmViewModelCU>{ 
        return BmViewModelMU.UPDATE_TIME;
    }
}
export {BmViewModelMU, BmViewModelCU}
