package com.yuchen.saas.park.service.service.property;


import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuchen.saas.park.api.dto.property.*;
import com.yuchen.saas.park.api.entity.property.PropertyHouseMeter;
import com.yuchen.saas.park.api.entity.property.PropertyPublicMeter;
import com.yuchen.saas.park.api.vo.property.PropertyPublicMeterAppPageVo;
import com.yuchen.saas.park.api.vo.property.PropertyPublicMeterDetailVo;
import com.yuchen.saas.park.api.vo.property.PropertyPublicMeterPageVo;
import com.yuchen.saas.park.api.vo.property.PropertyPublicMeterReadingByAppVo;
import org.nest.springwrap.core.mp.support.NestPage;

import java.util.List;

/**
 * <p>
 * 公摊仪表 服务类
 * </p>
 *
 * @author cxj
 * @since 2023-11-23
 */
public interface IPropertyPublicMeterService extends IService<PropertyPublicMeter> {

    NestPage<PropertyPublicMeterPageVo>  getPage(PropertyPublicMeterQueryDto dto);

    NestPage<PropertyPublicMeter> getPageBySelect(PropertyPublicMeterQuerySelectDto dto);

    Boolean addOrUpdate(PropertyPublicMeterAddDto dto);

    PropertyPublicMeterDetailVo getHouseMeterById(Long id);

    Boolean binding(List<PropertyMeterBindingDto> list);

    Boolean del(Long id);

    Boolean updateMeter(PropertyPublicMeterUpdateDto dto);

    List<PropertyPublicMeter> listByParkIdAndMeterId(Long parkId,Long meterId);

    IPage<PropertyPublicMeter> getPageByPark(PropertyPublicMeterReadingQueryDto dto);

    List<PropertyPublicMeter> listByParentId(Long parentId);

    Boolean updateIsSealed(PropertyMeterUpdateIsSealedDto dto);

    List<PropertyPublicMeterAppPageVo> getListByApp(PropertyHouseMeterAppQueryDto dto);

    PropertyPublicMeterReadingByAppVo getDetailByApp(Long id);

}
