import {ModelConditionUtil, ModelConditionUtilImpl, FieldConditionUtil, TableUtil, TableUtilImpl } from 'model-util'

/**
 * @author Keytop midend auto generate
 * @version 1.0
 * @date 2020-05-25 16:38
 */
interface BmBusinessScope{
    id: string;
    name: string;
    description: string;
    createTime: Date;
    updateTime: Date;
}
interface BmBusinessScopeMCU extends ModelConditionUtil<BmBusinessScopeMCU>{
    ID:FieldConditionUtil<BmBusinessScopeMCU>;
    NAME:FieldConditionUtil<BmBusinessScopeMCU>;
    DESCRIPTION:FieldConditionUtil<BmBusinessScopeMCU>;
    CREATE_TIME:FieldConditionUtil<BmBusinessScopeMCU>;
    UPDATE_TIME:FieldConditionUtil<BmBusinessScopeMCU>;
}

class BmBusinessScopeMCUImpl extends ModelConditionUtilImpl<BmBusinessScopeMCUImpl> implements BmBusinessScopeMCU{ 
    newInstance(): BmBusinessScopeMCUImpl {
        return new BmBusinessScopeMCUImpl();
    } 
    private _ID: FieldConditionUtil<BmBusinessScopeMCU>;
    get ID(): FieldConditionUtil<BmBusinessScopeMCU>{  
        return new FieldConditionUtil('id', this);
    }
    private _NAME: FieldConditionUtil<BmBusinessScopeMCU>;
    get NAME(): FieldConditionUtil<BmBusinessScopeMCU>{  
        return new FieldConditionUtil('name', this);
    }
    private _DESCRIPTION: FieldConditionUtil<BmBusinessScopeMCU>;
    get DESCRIPTION(): FieldConditionUtil<BmBusinessScopeMCU>{  
        return new FieldConditionUtil('description', this);
    }
    private _CREATE_TIME: FieldConditionUtil<BmBusinessScopeMCU>;
    get CREATE_TIME(): FieldConditionUtil<BmBusinessScopeMCU>{  
        return new FieldConditionUtil('create_time', this);
    }
    private _UPDATE_TIME: FieldConditionUtil<BmBusinessScopeMCU>;
    get UPDATE_TIME(): FieldConditionUtil<BmBusinessScopeMCU>{  
        return new FieldConditionUtil('update_time', this);
    }
}

class BmBusinessScopeMU extends TableUtilImpl<BmBusinessScopeMCU,BmBusinessScope>{ 
    tableName  = 'bm_business_scope';
    tableFields  = ['id','name','description','create_time','update_time'];
    modelFields  = ['id','name','description','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    selectSQL ='select * from bm_business_scope ';

    createModelConditionUtil(): BmBusinessScopeMCU {
        return new BmBusinessScopeMCUImpl();
    }   

    private static _ID: FieldConditionUtil<BmBusinessScopeMCU>;
    static get ID(): FieldConditionUtil<BmBusinessScopeMCU>{ 
        return new FieldConditionUtil('id', new BmBusinessScopeMCUImpl());
    }
    private static _NAME: FieldConditionUtil<BmBusinessScopeMCU>;
    static get NAME(): FieldConditionUtil<BmBusinessScopeMCU>{ 
        return new FieldConditionUtil('name', new BmBusinessScopeMCUImpl());
    }
    private static _DESCRIPTION: FieldConditionUtil<BmBusinessScopeMCU>;
    static get DESCRIPTION(): FieldConditionUtil<BmBusinessScopeMCU>{ 
        return new FieldConditionUtil('description', new BmBusinessScopeMCUImpl());
    }
    private static _CREATE_TIME: FieldConditionUtil<BmBusinessScopeMCU>;
    static get CREATE_TIME(): FieldConditionUtil<BmBusinessScopeMCU>{ 
        return new FieldConditionUtil('create_time', new BmBusinessScopeMCUImpl());
    }
    private static _UPDATE_TIME: FieldConditionUtil<BmBusinessScopeMCU>;
    static get UPDATE_TIME(): FieldConditionUtil<BmBusinessScopeMCU>{ 
        return new FieldConditionUtil('update_time', new BmBusinessScopeMCUImpl());
    }
}
export {BmBusinessScopeMCU, BmBusinessScopeMCUImpl, BmBusinessScope, BmBusinessScopeMU}
