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

/**
 * @author Keytop midend auto generate
 * @version 1.0
 * @date 2020-05-27 11:22
 */
interface TestModel2{
    /**
    * 代码
    * @type { string }
    */
    code?: string;
    /**
    * 创建时间
    * @type { Date }
    */
    createTime?: Date;
    /**
    * 创建人ID
    * @type { string }
    */
    createUserId?: string;
    /**
    * 描述
    * @type { string }
    */
    description?: string;
    /**
    * 主键
    * @type { string }
    */
    id?: string;
    /**
    * 更新时间
    * @type { Date }
    */
    updateTime?: Date;
    /**
    * 修改人ID
    * @type { string }
    */
    updateUserId?: string;
}
interface TestModel2MCU extends ModelConditionUtil<TestModel2MCU>{
    CODE:FieldConditionUtil<TestModel2MCU>;
    CREATE_TIME:FieldConditionUtil<TestModel2MCU>;
    CREATE_USER_ID:FieldConditionUtil<TestModel2MCU>;
    DESCRIPTION:FieldConditionUtil<TestModel2MCU>;
    ID:FieldConditionUtil<TestModel2MCU>;
    UPDATE_TIME:FieldConditionUtil<TestModel2MCU>;
    UPDATE_USER_ID:FieldConditionUtil<TestModel2MCU>;
}

class TestModel2MCUImpl extends ModelConditionUtilImpl<TestModel2MCUImpl> implements TestModel2MCU{ 
    newInstance(): TestModel2MCUImpl {
        return new TestModel2MCUImpl();
    } 
    private _CODE: FieldConditionUtil<TestModel2MCU>;
    get CODE(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('code', this);
    }
    private _CREATE_TIME: FieldConditionUtil<TestModel2MCU>;
    get CREATE_TIME(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('create_time', this);
    }
    private _CREATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    get CREATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('create_user_id', this);
    }
    private _DESCRIPTION: FieldConditionUtil<TestModel2MCU>;
    get DESCRIPTION(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('description', this);
    }
    private _ID: FieldConditionUtil<TestModel2MCU>;
    get ID(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('id', this);
    }
    private _UPDATE_TIME: FieldConditionUtil<TestModel2MCU>;
    get UPDATE_TIME(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('update_time', this);
    }
    private _UPDATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    get UPDATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{  
        return new FieldConditionUtil('update_user_id', this);
    }
}

class TestModel2MU extends TableUtilImpl<TestModel2MCU,TestModel2>{ 
    tableName  = 'bm_business_scope';
    tableFields  = ['code','create_time','create_user_id','description','id','update_time','update_user_id'];
    modelFields  = ['code','createTime','createUserId','description','id','updateTime','updateUserId'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    selectSQL ='select * from bm_business_scope ';

    createModelConditionUtil(): TestModel2MCU {
        return new TestModel2MCUImpl();
    }   

    private static _CODE: FieldConditionUtil<TestModel2MCU>;
    static get CODE(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('code', new TestModel2MCUImpl());
    }
    private static _CREATE_TIME: FieldConditionUtil<TestModel2MCU>;
    static get CREATE_TIME(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('create_time', new TestModel2MCUImpl());
    }
    private static _CREATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    static get CREATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('create_user_id', new TestModel2MCUImpl());
    }
    private static _DESCRIPTION: FieldConditionUtil<TestModel2MCU>;
    static get DESCRIPTION(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('description', new TestModel2MCUImpl());
    }
    private static _ID: FieldConditionUtil<TestModel2MCU>;
    static get ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('id', new TestModel2MCUImpl());
    }
    private static _UPDATE_TIME: FieldConditionUtil<TestModel2MCU>;
    static get UPDATE_TIME(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('update_time', new TestModel2MCUImpl());
    }
    private static _UPDATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    static get UPDATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('update_user_id', new TestModel2MCUImpl());
    }

    private  _CODE: FieldConditionUtil<TestModel2MCU>;
    get CODE(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('code', new TestModel2MCUImpl());
    }
    private  _CREATE_TIME: FieldConditionUtil<TestModel2MCU>;
    get CREATE_TIME(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('create_time', new TestModel2MCUImpl());
    }
    private  _CREATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    get CREATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('create_user_id', new TestModel2MCUImpl());
    }
    private  _DESCRIPTION: FieldConditionUtil<TestModel2MCU>;
    get DESCRIPTION(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('description', new TestModel2MCUImpl());
    }
    private  _ID: FieldConditionUtil<TestModel2MCU>;
    get ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('id', new TestModel2MCUImpl());
    }
    private  _UPDATE_TIME: FieldConditionUtil<TestModel2MCU>;
    get UPDATE_TIME(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('update_time', new TestModel2MCUImpl());
    }
    private  _UPDATE_USER_ID: FieldConditionUtil<TestModel2MCU>;
    get UPDATE_USER_ID(): FieldConditionUtil<TestModel2MCU>{ 
        return new FieldConditionUtil('update_user_id', new TestModel2MCUImpl());
    }
}
export {TestModel2MCU, TestModel2MCUImpl, TestModel2, TestModel2MU}
