import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { BmViewModelField } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-07-31 17:08
 */
interface BmViewModelFieldCU extends ConditionUtil<BmViewModelFieldCU>{
    ID:FieldUtil<BmViewModelFieldCU>;
    BM_PROJECT_ID:FieldUtil<BmViewModelFieldCU>;
    BM_VIEW_MODEL_ID:FieldUtil<BmViewModelFieldCU>;
    VERSION_ID:FieldUtil<BmViewModelFieldCU>;
    NAME:FieldUtil<BmViewModelFieldCU>;
    COLUMN_NAME:FieldUtil<BmViewModelFieldCU>;
    PRIMARY_KEY:FieldUtil<BmViewModelFieldCU>;
    PRIMARY_KEY_GEN_TYPE:FieldUtil<BmViewModelFieldCU>;
    TITLE:FieldUtil<BmViewModelFieldCU>;
    DATA_TYPE:FieldUtil<BmViewModelFieldCU>;
    JAVA_DATA_TYPE:FieldUtil<BmViewModelFieldCU>;
    DESCRIPTION:FieldUtil<BmViewModelFieldCU>;
    UPDATE_USER_ID:FieldUtil<BmViewModelFieldCU>;
    CREATE_USER_ID:FieldUtil<BmViewModelFieldCU>;
    CREATE_TIME:FieldUtil<BmViewModelFieldCU>;
    UPDATE_TIME:FieldUtil<BmViewModelFieldCU>;
}

class BmViewModelFieldCUImpl extends ConditionUtilImpl<BmViewModelFieldCUImpl> implements BmViewModelFieldCU{ 
    newInstance(): BmViewModelFieldCUImpl {
        return new BmViewModelFieldCUImpl();
    } 
    get ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('ID','id','', this);
    }
    get BM_PROJECT_ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('BM_PROJECT_ID','bmProjectId','', this);
    }
    get BM_VIEW_MODEL_ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('BM_VIEW_MODEL_ID','bmViewModelId','', this);
    }
    get VERSION_ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('VERSION_ID','versionId','', this);
    }
    get NAME(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('NAME','name','', this);
    }
    get COLUMN_NAME(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('COLUMN_NAME','columnName','', this);
    }
    get PRIMARY_KEY(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('PRIMARY_KEY','primaryKey','', this);
    }
    get PRIMARY_KEY_GEN_TYPE(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('PRIMARY_KEY_GEN_TYPE','primaryKeyGenType','', this);
    }
    get TITLE(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('TITLE','title','', this);
    }
    get DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('DATA_TYPE','dataType','', this);
    }
    get JAVA_DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('JAVA_DATA_TYPE','javaDataType','', this);
    }
    get DESCRIPTION(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('DESCRIPTION','description','', this);
    }
    get UPDATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('UPDATE_USER_ID','updateUserId','', this);
    }
    get CREATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('CREATE_USER_ID','createUserId','', this);
    }
    get CREATE_TIME(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('CREATE_TIME','createTime','', this);
    }
    get UPDATE_TIME(): FieldUtil<BmViewModelFieldCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','', this);
    }
}

@Singleton 
class BmViewModelFieldMU extends TableUtilImpl<BmViewModelFieldCU,BmViewModelField>{ 
    tableName  = 'bm_view_model_field';
    tableFields  = ['ID','BM_PROJECT_ID','BM_VIEW_MODEL_ID','VERSION_ID','NAME','COLUMN_NAME','PRIMARY_KEY','PRIMARY_KEY_GEN_TYPE','TITLE','DATA_TYPE','JAVA_DATA_TYPE','DESCRIPTION','UPDATE_USER_ID','CREATE_USER_ID','CREATE_TIME','UPDATE_TIME'];
    modelFields  = ['id','bmProjectId','bmViewModelId','versionId','name','columnName','primaryKey','primaryKeyGenType','title','dataType','javaDataType','description','updateUserId','createUserId','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): BmViewModelFieldCU {
        return new BmViewModelFieldCUImpl();
    }   

    static get ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('ID','id','', new BmViewModelFieldCUImpl());
    }
    static get BM_PROJECT_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('BM_PROJECT_ID','bmProjectId','', new BmViewModelFieldCUImpl());
    }
    static get BM_VIEW_MODEL_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('BM_VIEW_MODEL_ID','bmViewModelId','', new BmViewModelFieldCUImpl());
    }
    static get VERSION_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('VERSION_ID','versionId','', new BmViewModelFieldCUImpl());
    }
    static get NAME(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('NAME','name','', new BmViewModelFieldCUImpl());
    }
    static get COLUMN_NAME(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('COLUMN_NAME','columnName','', new BmViewModelFieldCUImpl());
    }
    static get PRIMARY_KEY(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('PRIMARY_KEY','primaryKey','', new BmViewModelFieldCUImpl());
    }
    static get PRIMARY_KEY_GEN_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('PRIMARY_KEY_GEN_TYPE','primaryKeyGenType','', new BmViewModelFieldCUImpl());
    }
    static get TITLE(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('TITLE','title','', new BmViewModelFieldCUImpl());
    }
    static get DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('DATA_TYPE','dataType','', new BmViewModelFieldCUImpl());
    }
    static get JAVA_DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('JAVA_DATA_TYPE','javaDataType','', new BmViewModelFieldCUImpl());
    }
    static get DESCRIPTION(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('DESCRIPTION','description','', new BmViewModelFieldCUImpl());
    }
    static get UPDATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('UPDATE_USER_ID','updateUserId','', new BmViewModelFieldCUImpl());
    }
    static get CREATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('CREATE_USER_ID','createUserId','', new BmViewModelFieldCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','', new BmViewModelFieldCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<BmViewModelFieldCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','', new BmViewModelFieldCUImpl());
    }

    get ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.ID;
    }
    get BM_PROJECT_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.BM_PROJECT_ID;
    }
    get BM_VIEW_MODEL_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.BM_VIEW_MODEL_ID;
    }
    get VERSION_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.VERSION_ID;
    }
    get NAME(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.NAME;
    }
    get COLUMN_NAME(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.COLUMN_NAME;
    }
    get PRIMARY_KEY(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.PRIMARY_KEY;
    }
    get PRIMARY_KEY_GEN_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.PRIMARY_KEY_GEN_TYPE;
    }
    get TITLE(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.TITLE;
    }
    get DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.DATA_TYPE;
    }
    get JAVA_DATA_TYPE(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.JAVA_DATA_TYPE;
    }
    get DESCRIPTION(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.DESCRIPTION;
    }
    get UPDATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.UPDATE_USER_ID;
    }
    get CREATE_USER_ID(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.CREATE_USER_ID;
    }
    get CREATE_TIME(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<BmViewModelFieldCU>{ 
        return BmViewModelFieldMU.UPDATE_TIME;
    }
}
export {BmViewModelFieldMU, BmViewModelFieldCU}
