import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { PpUserV3 } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-04-22 15:08
 */
interface PpUserV3CU extends ConditionUtil<PpUserV3CU>{
    ID:FieldUtil<PpUserV3CU>;
    NICK_NAME:FieldUtil<PpUserV3CU>;
    AVATAR:FieldUtil<PpUserV3CU>;
    PHONE:FieldUtil<PpUserV3CU>;
    EMAIL:FieldUtil<PpUserV3CU>;
    GENDER:FieldUtil<PpUserV3CU>;
    COMMON_LPN:FieldUtil<PpUserV3CU>;
    BINDED_LPN:FieldUtil<PpUserV3CU>;
    PROV_ID:FieldUtil<PpUserV3CU>;
    CITY_ID:FieldUtil<PpUserV3CU>;
    DISTRICT_ID:FieldUtil<PpUserV3CU>;
    SPARE_FIELD_1:FieldUtil<PpUserV3CU>;
    SPARE_FIELD_2:FieldUtil<PpUserV3CU>;
    SPARE_FIELD_3:FieldUtil<PpUserV3CU>;
    SPARE_FIELD_4:FieldUtil<PpUserV3CU>;
    REMARK:FieldUtil<PpUserV3CU>;
    CREATE_TIME:FieldUtil<PpUserV3CU>;
    UPDATE_TIME:FieldUtil<PpUserV3CU>;
}

class PpUserV3CUImpl extends ConditionUtilImpl<PpUserV3CUImpl> implements PpUserV3CU{ 
    newInstance(): PpUserV3CUImpl {
        return new PpUserV3CUImpl();
    } 
    get ID(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('ID','id','唯一标识', this);
    }
    get NICK_NAME(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('NICK_NAME','nickName','用户昵称', this);
    }
    get AVATAR(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('AVATAR','avatar','用户头像', this);
    }
    get PHONE(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('PHONE','phone','联系电话', this);
    }
    get EMAIL(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('EMAIL','email','邮箱', this);
    }
    get GENDER(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('GENDER','gender','性别', this);
    }
    get COMMON_LPN(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('COMMON_LPN','commonLpn','普通车牌号', this);
    }
    get BINDED_LPN(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('BINDED_LPN','bindedLpn','绑定车牌号', this);
    }
    get PROV_ID(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('PROV_ID','provId','省份ID', this);
    }
    get CITY_ID(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('CITY_ID','cityId','城市ID', this);
    }
    get DISTRICT_ID(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('DISTRICT_ID','districtId','区县ID', this);
    }
    get SPARE_FIELD_1(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('SPARE_FIELD_1','spareField1','备用字段1', this);
    }
    get SPARE_FIELD_2(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('SPARE_FIELD_2','spareField2','备用字段2', this);
    }
    get SPARE_FIELD_3(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('SPARE_FIELD_3','spareField3','备用字段3', this);
    }
    get SPARE_FIELD_4(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('SPARE_FIELD_4','spareField4','备用字段4', this);
    }
    get REMARK(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get CREATE_TIME(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<PpUserV3CU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','', this);
    }
}

@Singleton 
class PpUserV3MU extends TableUtilImpl<PpUserV3CU,PpUserV3>{ 
    tableName  = 'pp_user_v3';
    tableFields  = ['ID','NICK_NAME','AVATAR','PHONE','EMAIL','GENDER','COMMON_LPN','BINDED_LPN','PROV_ID','CITY_ID','DISTRICT_ID','SPARE_FIELD_1','SPARE_FIELD_2','SPARE_FIELD_3','SPARE_FIELD_4','REMARK','CREATE_TIME','UPDATE_TIME'];
    modelFields  = ['id','nickName','avatar','phone','email','gender','commonLpn','bindedLpn','provId','cityId','districtId','spareField1','spareField2','spareField3','spareField4','remark','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): PpUserV3CU {
        return new PpUserV3CUImpl();
    }   

    static get ID(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('ID','id','唯一标识', new PpUserV3CUImpl());
    }
    static get NICK_NAME(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('NICK_NAME','nickName','用户昵称', new PpUserV3CUImpl());
    }
    static get AVATAR(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('AVATAR','avatar','用户头像', new PpUserV3CUImpl());
    }
    static get PHONE(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('PHONE','phone','联系电话', new PpUserV3CUImpl());
    }
    static get EMAIL(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('EMAIL','email','邮箱', new PpUserV3CUImpl());
    }
    static get GENDER(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('GENDER','gender','性别', new PpUserV3CUImpl());
    }
    static get COMMON_LPN(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('COMMON_LPN','commonLpn','普通车牌号', new PpUserV3CUImpl());
    }
    static get BINDED_LPN(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('BINDED_LPN','bindedLpn','绑定车牌号', new PpUserV3CUImpl());
    }
    static get PROV_ID(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('PROV_ID','provId','省份ID', new PpUserV3CUImpl());
    }
    static get CITY_ID(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('CITY_ID','cityId','城市ID', new PpUserV3CUImpl());
    }
    static get DISTRICT_ID(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('DISTRICT_ID','districtId','区县ID', new PpUserV3CUImpl());
    }
    static get SPARE_FIELD_1(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('SPARE_FIELD_1','spareField1','备用字段1', new PpUserV3CUImpl());
    }
    static get SPARE_FIELD_2(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('SPARE_FIELD_2','spareField2','备用字段2', new PpUserV3CUImpl());
    }
    static get SPARE_FIELD_3(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('SPARE_FIELD_3','spareField3','备用字段3', new PpUserV3CUImpl());
    }
    static get SPARE_FIELD_4(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('SPARE_FIELD_4','spareField4','备用字段4', new PpUserV3CUImpl());
    }
    static get REMARK(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('REMARK','remark','备注', new PpUserV3CUImpl());
    }
    static get CREATE_TIME(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new PpUserV3CUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<PpUserV3CU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','', new PpUserV3CUImpl());
    }

    get ID(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.ID;
    }
    get NICK_NAME(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.NICK_NAME;
    }
    get AVATAR(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.AVATAR;
    }
    get PHONE(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.PHONE;
    }
    get EMAIL(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.EMAIL;
    }
    get GENDER(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.GENDER;
    }
    get COMMON_LPN(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.COMMON_LPN;
    }
    get BINDED_LPN(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.BINDED_LPN;
    }
    get PROV_ID(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.PROV_ID;
    }
    get CITY_ID(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.CITY_ID;
    }
    get DISTRICT_ID(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.DISTRICT_ID;
    }
    get SPARE_FIELD_1(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.SPARE_FIELD_1;
    }
    get SPARE_FIELD_2(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.SPARE_FIELD_2;
    }
    get SPARE_FIELD_3(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.SPARE_FIELD_3;
    }
    get SPARE_FIELD_4(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.SPARE_FIELD_4;
    }
    get REMARK(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.REMARK;
    }
    get CREATE_TIME(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<PpUserV3CU>{ 
        return PpUserV3MU.UPDATE_TIME;
    }
}
export {PpUserV3MU, PpUserV3CU}
