import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { Park } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-03-08 10:10
 */
interface ParkCU extends ConditionUtil<ParkCU>{
    LOTCODE:FieldUtil<ParkCU>;
    LOTNAME:FieldUtil<ParkCU>;
    DATABASEID:FieldUtil<ParkCU>;
    UPDATETIME:FieldUtil<ParkCU>;
    TOTALLOTS:FieldUtil<ParkCU>;
    USEDLOTS:FieldUtil<ParkCU>;
    PROVINCE:FieldUtil<ParkCU>;
    CITY:FieldUtil<ParkCU>;
    REGION:FieldUtil<ParkCU>;
    ADDRESS:FieldUtil<ParkCU>;
    LOTTYPE:FieldUtil<ParkCU>;
    LONGITUDE:FieldUtil<ParkCU>;
    LATITUDE:FieldUtil<ParkCU>;
    CONTRACTNO:FieldUtil<ParkCU>;
    ISDELETE:FieldUtil<ParkCU>;
    ISSUPERPARK:FieldUtil<ParkCU>;
    CREATETIME:FieldUtil<ParkCU>;
    DEVICEID:FieldUtil<ParkCU>;
    BINDTIME:FieldUtil<ParkCU>;
    BINDOPNAME:FieldUtil<ParkCU>;
    REMARK:FieldUtil<ParkCU>;
    HASSYNCSUCCESS:FieldUtil<ParkCU>;
    SYNCTIME:FieldUtil<ParkCU>;
    DBVERSION:FieldUtil<ParkCU>;
    SERVICEDATE:FieldUtil<ParkCU>;
    ISUNATTEND:FieldUtil<ParkCU>;
    STATUS:FieldUtil<ParkCU>;
    UNATTENDSYNCTIME:FieldUtil<ParkCU>;
    OPSSYNCTIME:FieldUtil<ParkCU>;
    MIGRATETIME:FieldUtil<ParkCU>;
    DISTNUMBER:FieldUtil<ParkCU>;
}

class ParkCUImpl extends ConditionUtilImpl<ParkCUImpl> implements ParkCU{ 
    newInstance(): ParkCUImpl {
        return new ParkCUImpl();
    } 
    get LOTCODE(): FieldUtil<ParkCU>{  
        return new FieldUtil('LOTCODE','lotcode','车场编码', this);
    }
    get LOTNAME(): FieldUtil<ParkCU>{  
        return new FieldUtil('LOTNAME','lotname','车场名称', this);
    }
    get DATABASEID(): FieldUtil<ParkCU>{  
        return new FieldUtil('DATABASEID','databaseid','车场所在的数据库id，关联t_database中的id', this);
    }
    get UPDATETIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('UPDATETIME','updatetime','', this);
    }
    get TOTALLOTS(): FieldUtil<ParkCU>{  
        return new FieldUtil('TOTALLOTS','totallots','车场总车位数', this);
    }
    get USEDLOTS(): FieldUtil<ParkCU>{  
        return new FieldUtil('USEDLOTS','usedlots','剩余车位数', this);
    }
    get PROVINCE(): FieldUtil<ParkCU>{  
        return new FieldUtil('PROVINCE','province','省份', this);
    }
    get CITY(): FieldUtil<ParkCU>{  
        return new FieldUtil('CITY','city','城市', this);
    }
    get REGION(): FieldUtil<ParkCU>{  
        return new FieldUtil('REGION','region','区/县', this);
    }
    get ADDRESS(): FieldUtil<ParkCU>{  
        return new FieldUtil('ADDRESS','address','地址', this);
    }
    get LOTTYPE(): FieldUtil<ParkCU>{  
        return new FieldUtil('LOTTYPE','lottype','车场性质，由BI及速停车维护', this);
    }
    get LONGITUDE(): FieldUtil<ParkCU>{  
        return new FieldUtil('LONGITUDE','longitude','高德经度', this);
    }
    get LATITUDE(): FieldUtil<ParkCU>{  
        return new FieldUtil('LATITUDE','latitude','高德纬度', this);
    }
    get CONTRACTNO(): FieldUtil<ParkCU>{  
        return new FieldUtil('CONTRACTNO','contractno','合同号', this);
    }
    get ISDELETE(): FieldUtil<ParkCU>{  
        return new FieldUtil('ISDELETE','isdelete','是否删除，0未删除，1已删除', this);
    }
    get ISSUPERPARK(): FieldUtil<ParkCU>{  
        return new FieldUtil('ISSUPERPARK','issuperpark','是否速泊车场，0否1是', this);
    }
    get CREATETIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('CREATETIME','createtime','创建时间', this);
    }
    get DEVICEID(): FieldUtil<ParkCU>{  
        return new FieldUtil('DEVICEID','deviceid','设备id', this);
    }
    get BINDTIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('BINDTIME','bindtime','绑定时间', this);
    }
    get BINDOPNAME(): FieldUtil<ParkCU>{  
        return new FieldUtil('BINDOPNAME','bindopname','绑定操作人姓名', this);
    }
    get REMARK(): FieldUtil<ParkCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get HASSYNCSUCCESS(): FieldUtil<ParkCU>{  
        return new FieldUtil('HASSYNCSUCCESS','hassyncsuccess','是否与速停车同步成功，0否1是', this);
    }
    get SYNCTIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('SYNCTIME','synctime','更新时间', this);
    }
    get DBVERSION(): FieldUtil<ParkCU>{  
        return new FieldUtil('DBVERSION','dbversion','数据库当前版本号', this);
    }
    get SERVICEDATE(): FieldUtil<ParkCU>{  
        return new FieldUtil('SERVICEDATE','servicedate','服务时间', this);
    }
    get ISUNATTEND(): FieldUtil<ParkCU>{  
        return new FieldUtil('ISUNATTEND','isunattend','是否无人值守', this);
    }
    get STATUS(): FieldUtil<ParkCU>{  
        return new FieldUtil('STATUS','status','车场状态0注销1启用2调试中', this);
    }
    get UNATTENDSYNCTIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('UNATTENDSYNCTIME','unattendsynctime','无人值守配置同步时间', this);
    }
    get OPSSYNCTIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('OPSSYNCTIME','opssynctime','运维中心配置同步时间', this);
    }
    get MIGRATETIME(): FieldUtil<ParkCU>{  
        return new FieldUtil('MIGRATETIME','migratetime','迁移时间', this);
    }
    get DISTNUMBER(): FieldUtil<ParkCU>{  
        return new FieldUtil('DISTNUMBER','distnumber','0不允许多个车场服务；其他值：允许车场服务的个数，对应t_lotpark_dist中允许绑定的最大设', this);
    }
}

@Singleton 
class ParkMU extends TableUtilImpl<ParkCU,Park>{ 
    tableName  = 't_lotpark';
    tableFields  = ['lotCode','lotName','databaseId','updateTime','totalLots','usedLots','province','city','region','address','lotType','longitude','latitude','contractNo','isDelete','isSuperPark','createTime','deviceId','bindTime','bindOpName','remark','hasSyncSuccess','syncTime','dbVersion','serviceDate','isUnattend','status','unattendSyncTime','opsSyncTime','migrateTime','distNumber'];
    modelFields  = ['lotcode','lotname','databaseid','updatetime','totallots','usedlots','province','city','region','address','lottype','longitude','latitude','contractno','isdelete','issuperpark','createtime','deviceid','bindtime','bindopname','remark','hassyncsuccess','synctime','dbversion','servicedate','isunattend','status','unattendsynctime','opssynctime','migratetime','distnumber'];
    modelIdFields  = ['lotcode'];
    tableIdFields  = ['lotCode'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): ParkCU {
        return new ParkCUImpl();
    }   

    static get LOTCODE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('LOTCODE','lotcode','车场编码', new ParkCUImpl());
    }
    static get LOTNAME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('LOTNAME','lotname','车场名称', new ParkCUImpl());
    }
    static get DATABASEID(): FieldUtil<ParkCU>{ 
        return new FieldUtil('DATABASEID','databaseid','车场所在的数据库id，关联t_database中的id', new ParkCUImpl());
    }
    static get UPDATETIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('UPDATETIME','updatetime','', new ParkCUImpl());
    }
    static get TOTALLOTS(): FieldUtil<ParkCU>{ 
        return new FieldUtil('TOTALLOTS','totallots','车场总车位数', new ParkCUImpl());
    }
    static get USEDLOTS(): FieldUtil<ParkCU>{ 
        return new FieldUtil('USEDLOTS','usedlots','剩余车位数', new ParkCUImpl());
    }
    static get PROVINCE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('PROVINCE','province','省份', new ParkCUImpl());
    }
    static get CITY(): FieldUtil<ParkCU>{ 
        return new FieldUtil('CITY','city','城市', new ParkCUImpl());
    }
    static get REGION(): FieldUtil<ParkCU>{ 
        return new FieldUtil('REGION','region','区/县', new ParkCUImpl());
    }
    static get ADDRESS(): FieldUtil<ParkCU>{ 
        return new FieldUtil('ADDRESS','address','地址', new ParkCUImpl());
    }
    static get LOTTYPE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('LOTTYPE','lottype','车场性质，由BI及速停车维护', new ParkCUImpl());
    }
    static get LONGITUDE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('LONGITUDE','longitude','高德经度', new ParkCUImpl());
    }
    static get LATITUDE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('LATITUDE','latitude','高德纬度', new ParkCUImpl());
    }
    static get CONTRACTNO(): FieldUtil<ParkCU>{ 
        return new FieldUtil('CONTRACTNO','contractno','合同号', new ParkCUImpl());
    }
    static get ISDELETE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('ISDELETE','isdelete','是否删除，0未删除，1已删除', new ParkCUImpl());
    }
    static get ISSUPERPARK(): FieldUtil<ParkCU>{ 
        return new FieldUtil('ISSUPERPARK','issuperpark','是否速泊车场，0否1是', new ParkCUImpl());
    }
    static get CREATETIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('CREATETIME','createtime','创建时间', new ParkCUImpl());
    }
    static get DEVICEID(): FieldUtil<ParkCU>{ 
        return new FieldUtil('DEVICEID','deviceid','设备id', new ParkCUImpl());
    }
    static get BINDTIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('BINDTIME','bindtime','绑定时间', new ParkCUImpl());
    }
    static get BINDOPNAME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('BINDOPNAME','bindopname','绑定操作人姓名', new ParkCUImpl());
    }
    static get REMARK(): FieldUtil<ParkCU>{ 
        return new FieldUtil('REMARK','remark','备注', new ParkCUImpl());
    }
    static get HASSYNCSUCCESS(): FieldUtil<ParkCU>{ 
        return new FieldUtil('HASSYNCSUCCESS','hassyncsuccess','是否与速停车同步成功，0否1是', new ParkCUImpl());
    }
    static get SYNCTIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('SYNCTIME','synctime','更新时间', new ParkCUImpl());
    }
    static get DBVERSION(): FieldUtil<ParkCU>{ 
        return new FieldUtil('DBVERSION','dbversion','数据库当前版本号', new ParkCUImpl());
    }
    static get SERVICEDATE(): FieldUtil<ParkCU>{ 
        return new FieldUtil('SERVICEDATE','servicedate','服务时间', new ParkCUImpl());
    }
    static get ISUNATTEND(): FieldUtil<ParkCU>{ 
        return new FieldUtil('ISUNATTEND','isunattend','是否无人值守', new ParkCUImpl());
    }
    static get STATUS(): FieldUtil<ParkCU>{ 
        return new FieldUtil('STATUS','status','车场状态0注销1启用2调试中', new ParkCUImpl());
    }
    static get UNATTENDSYNCTIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('UNATTENDSYNCTIME','unattendsynctime','无人值守配置同步时间', new ParkCUImpl());
    }
    static get OPSSYNCTIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('OPSSYNCTIME','opssynctime','运维中心配置同步时间', new ParkCUImpl());
    }
    static get MIGRATETIME(): FieldUtil<ParkCU>{ 
        return new FieldUtil('MIGRATETIME','migratetime','迁移时间', new ParkCUImpl());
    }
    static get DISTNUMBER(): FieldUtil<ParkCU>{ 
        return new FieldUtil('DISTNUMBER','distnumber','0不允许多个车场服务；其他值：允许车场服务的个数，对应t_lotpark_dist中允许绑定的最大设', new ParkCUImpl());
    }

    get LOTCODE(): FieldUtil<ParkCU>{ 
        return ParkMU.LOTCODE;
    }
    get LOTNAME(): FieldUtil<ParkCU>{ 
        return ParkMU.LOTNAME;
    }
    get DATABASEID(): FieldUtil<ParkCU>{ 
        return ParkMU.DATABASEID;
    }
    get UPDATETIME(): FieldUtil<ParkCU>{ 
        return ParkMU.UPDATETIME;
    }
    get TOTALLOTS(): FieldUtil<ParkCU>{ 
        return ParkMU.TOTALLOTS;
    }
    get USEDLOTS(): FieldUtil<ParkCU>{ 
        return ParkMU.USEDLOTS;
    }
    get PROVINCE(): FieldUtil<ParkCU>{ 
        return ParkMU.PROVINCE;
    }
    get CITY(): FieldUtil<ParkCU>{ 
        return ParkMU.CITY;
    }
    get REGION(): FieldUtil<ParkCU>{ 
        return ParkMU.REGION;
    }
    get ADDRESS(): FieldUtil<ParkCU>{ 
        return ParkMU.ADDRESS;
    }
    get LOTTYPE(): FieldUtil<ParkCU>{ 
        return ParkMU.LOTTYPE;
    }
    get LONGITUDE(): FieldUtil<ParkCU>{ 
        return ParkMU.LONGITUDE;
    }
    get LATITUDE(): FieldUtil<ParkCU>{ 
        return ParkMU.LATITUDE;
    }
    get CONTRACTNO(): FieldUtil<ParkCU>{ 
        return ParkMU.CONTRACTNO;
    }
    get ISDELETE(): FieldUtil<ParkCU>{ 
        return ParkMU.ISDELETE;
    }
    get ISSUPERPARK(): FieldUtil<ParkCU>{ 
        return ParkMU.ISSUPERPARK;
    }
    get CREATETIME(): FieldUtil<ParkCU>{ 
        return ParkMU.CREATETIME;
    }
    get DEVICEID(): FieldUtil<ParkCU>{ 
        return ParkMU.DEVICEID;
    }
    get BINDTIME(): FieldUtil<ParkCU>{ 
        return ParkMU.BINDTIME;
    }
    get BINDOPNAME(): FieldUtil<ParkCU>{ 
        return ParkMU.BINDOPNAME;
    }
    get REMARK(): FieldUtil<ParkCU>{ 
        return ParkMU.REMARK;
    }
    get HASSYNCSUCCESS(): FieldUtil<ParkCU>{ 
        return ParkMU.HASSYNCSUCCESS;
    }
    get SYNCTIME(): FieldUtil<ParkCU>{ 
        return ParkMU.SYNCTIME;
    }
    get DBVERSION(): FieldUtil<ParkCU>{ 
        return ParkMU.DBVERSION;
    }
    get SERVICEDATE(): FieldUtil<ParkCU>{ 
        return ParkMU.SERVICEDATE;
    }
    get ISUNATTEND(): FieldUtil<ParkCU>{ 
        return ParkMU.ISUNATTEND;
    }
    get STATUS(): FieldUtil<ParkCU>{ 
        return ParkMU.STATUS;
    }
    get UNATTENDSYNCTIME(): FieldUtil<ParkCU>{ 
        return ParkMU.UNATTENDSYNCTIME;
    }
    get OPSSYNCTIME(): FieldUtil<ParkCU>{ 
        return ParkMU.OPSSYNCTIME;
    }
    get MIGRATETIME(): FieldUtil<ParkCU>{ 
        return ParkMU.MIGRATETIME;
    }
    get DISTNUMBER(): FieldUtil<ParkCU>{ 
        return ParkMU.DISTNUMBER;
    }
}
export {ParkMU, ParkCU}
