import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { PfLotEiConfig } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-10-19 17:45
 */
interface PfLotEiConfigCU extends ConditionUtil<PfLotEiConfigCU>{
    ID:FieldUtil<PfLotEiConfigCU>;
    LOT_ID:FieldUtil<PfLotEiConfigCU>;
    EI_CONFIG_ID:FieldUtil<PfLotEiConfigCU>;
    EI_TYPE:FieldUtil<PfLotEiConfigCU>;
    ENABLE_CLOUD_INVOICE:FieldUtil<PfLotEiConfigCU>;
    MONTHLY_PM_FEE:FieldUtil<PfLotEiConfigCU>;
    REMARK:FieldUtil<PfLotEiConfigCU>;
    CREATE_TIME:FieldUtil<PfLotEiConfigCU>;
    UPDATE_TIME:FieldUtil<PfLotEiConfigCU>;
    USE_LOT_NAME:FieldUtil<PfLotEiConfigCU>;
    USE_LOT_ADDRESS:FieldUtil<PfLotEiConfigCU>;
    USE_CAR_NUMBER:FieldUtil<PfLotEiConfigCU>;
}

class PfLotEiConfigCUImpl extends ConditionUtilImpl<PfLotEiConfigCUImpl> implements PfLotEiConfigCU{ 
    newInstance(): PfLotEiConfigCUImpl {
        return new PfLotEiConfigCUImpl();
    } 
    get ID(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('ID','id','唯一标识', this);
    }
    get LOT_ID(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('LOT_ID','lotId','车场ID', this);
    }
    get EI_CONFIG_ID(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('EI_CONFIG_ID','eiConfigId','电子发票配置ID', this);
    }
    get EI_TYPE(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('EI_TYPE','eiType','发票类型', this);
    }
    get ENABLE_CLOUD_INVOICE(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('ENABLE_CLOUD_INVOICE','enableCloudInvoice','是否云端开票', this);
    }
    get MONTHLY_PM_FEE(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('MONTHLY_PM_FEE','monthlyPmFee','每月物业管理费', this);
    }
    get REMARK(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get CREATE_TIME(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
    get USE_LOT_NAME(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('USE_LOT_NAME','useLotName','是否使用车场名称', this);
    }
    get USE_LOT_ADDRESS(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('USE_LOT_ADDRESS','useLotAddress','是否使用车场地址', this);
    }
    get USE_CAR_NUMBER(): FieldUtil<PfLotEiConfigCU>{  
        return new FieldUtil('USE_CAR_NUMBER','useCarNumber','是否使用车牌号', this);
    }
}

@Singleton 
class PfLotEiConfigMU extends TableUtilImpl<PfLotEiConfigCU,PfLotEiConfig>{ 
    tableName  = 'pf_lot_ei_config';
    tableFields  = ['ID','LOT_ID','EI_CONFIG_ID','EI_TYPE','ENABLE_CLOUD_INVOICE','MONTHLY_PM_FEE','REMARK','CREATE_TIME','UPDATE_TIME','USE_LOT_NAME','USE_LOT_ADDRESS','USE_CAR_NUMBER'];
    modelFields  = ['id','lotId','eiConfigId','eiType','enableCloudInvoice','monthlyPmFee','remark','createTime','updateTime','useLotName','useLotAddress','useCarNumber'];
    modelIdFields  = ['id'];
    tableIdFields  = ['ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): PfLotEiConfigCU {
        return new PfLotEiConfigCUImpl();
    }   

    static get ID(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('ID','id','唯一标识', new PfLotEiConfigCUImpl());
    }
    static get LOT_ID(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('LOT_ID','lotId','车场ID', new PfLotEiConfigCUImpl());
    }
    static get EI_CONFIG_ID(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('EI_CONFIG_ID','eiConfigId','电子发票配置ID', new PfLotEiConfigCUImpl());
    }
    static get EI_TYPE(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('EI_TYPE','eiType','发票类型', new PfLotEiConfigCUImpl());
    }
    static get ENABLE_CLOUD_INVOICE(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('ENABLE_CLOUD_INVOICE','enableCloudInvoice','是否云端开票', new PfLotEiConfigCUImpl());
    }
    static get MONTHLY_PM_FEE(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('MONTHLY_PM_FEE','monthlyPmFee','每月物业管理费', new PfLotEiConfigCUImpl());
    }
    static get REMARK(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('REMARK','remark','备注', new PfLotEiConfigCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new PfLotEiConfigCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new PfLotEiConfigCUImpl());
    }
    static get USE_LOT_NAME(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('USE_LOT_NAME','useLotName','是否使用车场名称', new PfLotEiConfigCUImpl());
    }
    static get USE_LOT_ADDRESS(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('USE_LOT_ADDRESS','useLotAddress','是否使用车场地址', new PfLotEiConfigCUImpl());
    }
    static get USE_CAR_NUMBER(): FieldUtil<PfLotEiConfigCU>{ 
        return new FieldUtil('USE_CAR_NUMBER','useCarNumber','是否使用车牌号', new PfLotEiConfigCUImpl());
    }

    get ID(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.ID;
    }
    get LOT_ID(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.LOT_ID;
    }
    get EI_CONFIG_ID(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.EI_CONFIG_ID;
    }
    get EI_TYPE(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.EI_TYPE;
    }
    get ENABLE_CLOUD_INVOICE(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.ENABLE_CLOUD_INVOICE;
    }
    get MONTHLY_PM_FEE(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.MONTHLY_PM_FEE;
    }
    get REMARK(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.REMARK;
    }
    get CREATE_TIME(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.UPDATE_TIME;
    }
    get USE_LOT_NAME(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.USE_LOT_NAME;
    }
    get USE_LOT_ADDRESS(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.USE_LOT_ADDRESS;
    }
    get USE_CAR_NUMBER(): FieldUtil<PfLotEiConfigCU>{ 
        return PfLotEiConfigMU.USE_CAR_NUMBER;
    }
}
export {PfLotEiConfigMU, PfLotEiConfigCU}
