package com.zksy.WaterSupply.PipeNetworkStatistics.mapper;

import com.zksy.WaterSupply.PipeNetworkStatistics.dto.FacilityStatisticItemDTO;
import com.zksy.WaterSupply.PipeNetworkStatistics.dto.MetricItemDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface PipeNetworkStatisticsMapper {
    List<FacilityStatisticItemDTO> selectFacilityOverview(@Param("status") String status);
    Map<String, Object> selectPipeSummary(@Param("status") String status);
    Map<String, Object> selectWaterPlantSummary(@Param("status") String status);
    Map<String, Object> selectPumpStationSummary(@Param("status") String status);
    Map<String, Object> selectWaterSourceSummary(@Param("status") String status);
    Map<String, Object> selectWaterUserSummary(@Param("status") String status);
    List<MetricItemDTO> selectPipeMaterialDistribution(@Param("status") String status);
    List<MetricItemDTO> selectPipeDiameterDistribution(@Param("status") String status);
    List<MetricItemDTO> selectPipeLayingYearDistribution(@Param("status") String status);
    List<MetricItemDTO> selectPipePressureDistribution(@Param("status") String status);
    List<MetricItemDTO> selectStatusDistribution(@Param("tableType") String tableType, @Param("status") String status);
    List<MetricItemDTO> selectWaterPlantSourceTypeDistribution(@Param("status") String status);
    List<MetricItemDTO> selectWaterSourceTypeDistribution(@Param("status") String status);
    List<MetricItemDTO> selectWaterSourceQualityDistribution(@Param("status") String status);
    List<MetricItemDTO> selectWaterSourceProtectionDistribution(@Param("status") String status);
    List<MetricItemDTO> selectWaterUserTypeDistribution(@Param("status") String status);
    List<MetricItemDTO> selectWaterUserConsumptionDistribution(@Param("status") String status);
}
