package com.ruoyi.rocketmq.service;

import com.ruoyi.rocketmq.domain.InitialBandwidthTraffic;

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

/**
 * 初始带宽流量Service接口
 * 
 * @author gyt
 * @date 2025-08-20
 */
public interface IInitialBandwidthTrafficService 
{
    /**
     * 查询初始带宽流量
     * 
     * @param id 初始带宽流量主键
     * @return 初始带宽流量
     */
    public InitialBandwidthTraffic selectInitialBandwidthTrafficById(Long id);

    /**
     * 查询初始带宽流量列表
     * 
     * @param initialBandwidthTraffic 初始带宽流量
     * @return 初始带宽流量集合
     */
    public List<InitialBandwidthTraffic> selectInitialBandwidthTrafficList(InitialBandwidthTraffic initialBandwidthTraffic);

    /**
     * 新增初始带宽流量
     * 
     * @param initialBandwidthTraffic 初始带宽流量
     * @return 结果
     */
    public int insertInitialBandwidthTraffic(InitialBandwidthTraffic initialBandwidthTraffic);

    /**
     * 修改初始带宽流量
     * 
     * @param initialBandwidthTraffic 初始带宽流量
     * @return 结果
     */
    public int updateInitialBandwidthTraffic(InitialBandwidthTraffic initialBandwidthTraffic);

    /**
     * 批量删除初始带宽流量
     * 
     * @param ids 需要删除的初始带宽流量主键集合
     * @return 结果
     */
    public int deleteInitialBandwidthTrafficByIds(Long[] ids);

    /**
     * 删除初始带宽流量信息
     * 
     * @param id 初始带宽流量主键
     * @return 结果
     */
    public int deleteInitialBandwidthTrafficById(Long id);

    /**
     * 保存单条流量数据
     * @param data 流量数据
     */
    void save(InitialBandwidthTraffic data);
    /**
     * 保存单条流量数据
     * @param data 流量数据
     */
    void batchInsert(InitialBandwidthTraffic data);
    /**
     * 网络接口基础信息
     * @param initialBandwidthTraffic
     * @return
     */
    InitialBandwidthTraffic getNetInterfaceDetailsMsg(InitialBandwidthTraffic initialBandwidthTraffic);

    /**
     * 查询eth0流量信息并封装为多折线ECharts图表数据
     * @param initialBandwidthTraffic
     * @return
     */
    Map<String, Object> netInterfaceTrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic);

    /**
     * 查询eth0流量信息丢包数并封装为折线ECharts图表数据
     * @param initialBandwidthTraffic
     * @return
     */
    Map<String, Object> netInterfaceDroppedEcharts(InitialBandwidthTraffic initialBandwidthTraffic);
}
