package com.seer.teach.iot.admin.service;

import com.seer.teach.common.PageListBean;
import com.seer.teach.iot.admin.resp.*;

import java.util.List;

/**
 * <p>
 *
 * </p >
 *
 * @author Captain
 * @since 2025-08-13 20:45
 */
public interface AdminDevicesService {

    /**
     * 获取设备仪表盘信息
     *
     * @return DeviceDashboardResp 设备仪表盘响应数据
     */
    DeviceDashboardResp info();

    /**
     * 获取设备型号销售比例信息
     *
     * @return List<DeviceModelSaleResp> 设备型号销售比例响应数据列表
     */
    List<DeviceModelSaleResp> modelSalesRatio();

    /**
     * 获取设备分布信息
     *
     * @param provinceId 省份ID，用于筛选指定省份的设备分布数据
     * @return List<DeviceDistributionResp> 设备分布响应数据列表
     */
    List<DeviceDistributionResp> deviceDistribution(Integer provinceId);

    /**
     * 分页查询设备列表
     *
     * @param page           分页页码，从1开始
     * @param size           每页显示记录数
     * @param studentAccount 学生账号，用于筛选特定学生的设备
     * @return 设备列表响应对象集合
     */
    PageListBean<DeviceListResp> listPage(Integer page, Integer size, String studentAccount);


    /**
     * 获取指定设备的详细信息
     * @param id
     * @return
     */
    DeviceDetailResp getDeviceDetailById(Integer id);
}