package com.seer.teach.iot.module.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.seer.teach.iot.common.dto.CityPercentageDTO;
import com.seer.teach.iot.module.entity.DevicesEntity;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

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


/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author Captain
 * @since 2025-05-19
 */
public interface DevicesMapper extends BaseMapper<DevicesEntity> {

    /**
     * 统计各个设备型号的设备数量
     *
     * @return 返回设备型号统计结果列表，每个元素包含model_id和对应的设备数量count
     */
    @Select("SELECT model_id, COUNT(*) AS count FROM iot_devices WHERE deleted = 0 GROUP BY model_id")
    List<Map<String, Object>> countDevicesByModel();

    /**
     * 根据城市ID列表查询城市百分比数据
     *
     * @param cityIds 城市ID列表，用于筛选需要查询的城市数据
     * @return 返回对应城市ID的百分比数据列表，每个元素包含城市ID和相应的百分比信息
     */

    List<CityPercentageDTO> selectCityPercentages(@Param("cityIds") List<Integer> cityIds);

}
