package com.evobms.project.battery.domain;

import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.evobms.framework.aspectj.lang.annotation.Excel;
import com.evobms.framework.web.domain.BaseEntity;

/**
 * 电池极值数据对象 extreme_values
 *
 * @author 田志阳
 * @date 2025-10-14
 */
@ApiModel(description = "电池极值数据对象")
@Data
@EqualsAndHashCode(callSuper = false)
public class ExtremeValues extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /** 设备ID */
    @ApiModelProperty(value = "设备ID")
    @Excel(name = "设备ID")
    private String deviceId;

    /** 数据时间戳 */
    @ApiModelProperty(value = "数据时间戳")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "数据时间戳", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date timestamp;

    /** 最高电压电池子系统号 */
    @ApiModelProperty(value = "最高电压电池子系统号")
    @Excel(name = "最高电压电池子系统号")
    private Integer maxVoltageSubsystemNo;

    /** 最高电压电池单体代号 */
    @ApiModelProperty(value = "最高电压电池单体代号")
    @Excel(name = "最高电压电池单体代号")
    private Integer maxVoltageBatteryNo;

    /** 电池单体电压最高值(V) */
    @ApiModelProperty(value = "电池单体电压最高值(V)")
    @Excel(name = "电池单体电压最高值(V)")
    private BigDecimal maxVoltageValue;

    /** 最低电压电池子系统号 */
    @ApiModelProperty(value = "最低电压电池子系统号")
    @Excel(name = "最低电压电池子系统号")
    private Integer minVoltageSubsystemNo;

    /** 最低电压电池单体代号 */
    @ApiModelProperty(value = "最低电压电池单体代号")
    @Excel(name = "最低电压电池单体代号")
    private Integer minVoltageBatteryNo;

    /** 电池单体电压最低值(V) */
    @ApiModelProperty(value = "电池单体电压最低值(V)")
    @Excel(name = "电池单体电压最低值(V)")
    private BigDecimal minVoltageValue;

    /** 最高温度子系统号 */
    @ApiModelProperty(value = "最高温度子系统号")
    @Excel(name = "最高温度子系统号")
    private Integer maxTempSubsystemNo;

    /** 最高温度探针序号 */
    @ApiModelProperty(value = "最高温度探针序号")
    @Excel(name = "最高温度探针序号")
    private Integer maxTempProbeNo;

    /** 最高温度值(℃) */
    @ApiModelProperty(value = "最高温度值(℃)")
    @Excel(name = "最高温度值(℃)")
    private BigDecimal maxTempValue;

    /** 最低温度子系统号 */
    @ApiModelProperty(value = "最低温度子系统号")
    @Excel(name = "最低温度子系统号")
    private Integer minTempSubsystemNo;

    /** 最低温度探针序号 */
    @ApiModelProperty(value = "最低温度探针序号")
    @Excel(name = "最低温度探针序号")
    private Integer minTempProbeNo;

    /** 最低温度值(℃) */
    @ApiModelProperty(value = "最低温度值(℃)")
    @Excel(name = "最低温度值(℃)")
    private BigDecimal minTempValue;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setDeviceId(String deviceId)
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId()
    {
        return deviceId;
    }

    public void setTimestamp(Date timestamp)
    {
        this.timestamp = timestamp;
    }

    public Date getTimestamp()
    {
        return timestamp;
    }

    public void setMaxVoltageSubsystemNo(Integer maxVoltageSubsystemNo)
    {
        this.maxVoltageSubsystemNo = maxVoltageSubsystemNo;
    }

    public Integer getMaxVoltageSubsystemNo()
    {
        return maxVoltageSubsystemNo;
    }

    public void setMaxVoltageBatteryNo(Integer maxVoltageBatteryNo)
    {
        this.maxVoltageBatteryNo = maxVoltageBatteryNo;
    }

    public Integer getMaxVoltageBatteryNo()
    {
        return maxVoltageBatteryNo;
    }

    public void setMaxVoltageValue(BigDecimal maxVoltageValue)
    {
        this.maxVoltageValue = maxVoltageValue;
    }

    public BigDecimal getMaxVoltageValue()
    {
        return maxVoltageValue;
    }

    public void setMinVoltageSubsystemNo(Integer minVoltageSubsystemNo)
    {
        this.minVoltageSubsystemNo = minVoltageSubsystemNo;
    }

    public Integer getMinVoltageSubsystemNo()
    {
        return minVoltageSubsystemNo;
    }

    public void setMinVoltageBatteryNo(Integer minVoltageBatteryNo)
    {
        this.minVoltageBatteryNo = minVoltageBatteryNo;
    }

    public Integer getMinVoltageBatteryNo()
    {
        return minVoltageBatteryNo;
    }

    public void setMinVoltageValue(BigDecimal minVoltageValue)
    {
        this.minVoltageValue = minVoltageValue;
    }

    public BigDecimal getMinVoltageValue()
    {
        return minVoltageValue;
    }

    public void setMaxTempSubsystemNo(Integer maxTempSubsystemNo)
    {
        this.maxTempSubsystemNo = maxTempSubsystemNo;
    }

    public Integer getMaxTempSubsystemNo()
    {
        return maxTempSubsystemNo;
    }

    public void setMaxTempProbeNo(Integer maxTempProbeNo)
    {
        this.maxTempProbeNo = maxTempProbeNo;
    }

    public Integer getMaxTempProbeNo()
    {
        return maxTempProbeNo;
    }

    public void setMaxTempValue(BigDecimal maxTempValue)
    {
        this.maxTempValue = maxTempValue;
    }

    public BigDecimal getMaxTempValue()
    {
        return maxTempValue;
    }

    public void setMinTempSubsystemNo(Integer minTempSubsystemNo)
    {
        this.minTempSubsystemNo = minTempSubsystemNo;
    }

    public Integer getMinTempSubsystemNo()
    {
        return minTempSubsystemNo;
    }

    public void setMinTempProbeNo(Integer minTempProbeNo)
    {
        this.minTempProbeNo = minTempProbeNo;
    }

    public Integer getMinTempProbeNo()
    {
        return minTempProbeNo;
    }

    public void setMinTempValue(BigDecimal minTempValue)
    {
        this.minTempValue = minTempValue;
    }

    public BigDecimal getMinTempValue()
    {
        return minTempValue;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceId", getDeviceId())
            .append("timestamp", getTimestamp())
            .append("maxVoltageSubsystemNo", getMaxVoltageSubsystemNo())
            .append("maxVoltageBatteryNo", getMaxVoltageBatteryNo())
            .append("maxVoltageValue", getMaxVoltageValue())
            .append("minVoltageSubsystemNo", getMinVoltageSubsystemNo())
            .append("minVoltageBatteryNo", getMinVoltageBatteryNo())
            .append("minVoltageValue", getMinVoltageValue())
            .append("maxTempSubsystemNo", getMaxTempSubsystemNo())
            .append("maxTempProbeNo", getMaxTempProbeNo())
            .append("maxTempValue", getMaxTempValue())
            .append("minTempSubsystemNo", getMinTempSubsystemNo())
            .append("minTempProbeNo", getMinTempProbeNo())
            .append("minTempValue", getMinTempValue())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
