package com.ruoyi.system.domain;

import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * EPS初始流量数据实体类
 * 用于存储设备的接收和发送流量数据
 * 支持按时间自动分表存储（每月分成3个表）
 */
@Data
public class EpsInitialTrafficData extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 唯一标识ID */
    private Long id;

    /** 接口名称 */
    @Excel(name = "接口名称")
    private String name;

    /** MAC地址 */
    @Excel(name = "MAC地址")
    private String mac;

    /** 运行状态 */
    @Excel(name = "运行状态")
    private String status;

    /** 接口类型 */
    @Excel(name = "接口类型")
    private String type;

    /** IPv4地址 */
    @Excel(name = "IPv4地址")
    private String ipV4;

    /** 入站丢包率(%) */
    @Excel(name = "入站丢包率(%)")
    private BigDecimal inDropped;

    /** 出站丢包率(%) */
    @Excel(name = "出站丢包率(%)")
    private BigDecimal outDropped;

    /** 接收带宽(Mbps) */
    @Excel(name = "接收带宽(Mbps)")
    private String inSpeed;

    /** 发送带宽(Mbps) */
    @Excel(name = "发送带宽(Mbps)")
    private String outSpeed;

    /** 协商速度 */
    private String speed;

    /** 工作模式 */
    private String duplex;

    /** 业务代码 */
    @Excel(name = "业务代码")
    private String businessId;

    /** 业务名称 */
    @Excel(name = "业务名称")
    private String businessName;

    /** 服务器SN */
    @Excel(name = "服务器SN")
    private String serviceSn;

    /** 服务器名称 */
    @Excel(name = "服务器名称")
    private String nodeName;

    /** 收益方式(1.流量,2包端) */
    @Excel(name = "收益方式(1.流量,2包端)")
    private String revenueMethod;

    /** 包端带宽值 */
    @Excel(name = "包端带宽值")
    private BigDecimal packageBandwidth;

    /** 批量插入集合 **/
    private List<EpsInitialTrafficData> dataList;

    /**
     * 动态表名
     * 格式：eps_traffic_[年]_[月]_[日期范围]
     * 示例：eps_traffic_2023_08_1_10
     */
    private String tableName;
    /** 设备唯一标识 */
    private String clientId;

    /** 流量统计开始时间 */
    private String startTime;

    /** 流量统计结束时间 */
    private String endTime;

    /** 资源类型 */
    private String resourceType;
    /** 带宽类型 */
    private String bandwidthType;
    /** 日或月 */
    private String dayOrMonth;
    /** 金山流量 */
    private String machineFlow;
    /** 包含设备 */
    private String clientIds;
    /** 是否95值 */
    private boolean flag95 = false;
    /** 计算方式 */
    private String calculationMode;
    /** 95值 */
    private BigDecimal percentile95;


}