package com.evobms.project.bms.domain;

import java.math.BigDecimal;
import java.util.Date;
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;

/**
 * BMS实时运行数据对象 bms_runtime_data
 *
 * @author tzy
 * @date 2026-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class BmsRuntimeData extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

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

    /** 数据时间戳 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "数据时间戳", width = 30, dateFormat = "yyyy-MM-dd")
    private Date timestap;

    /** 车速(km/h) */
    @Excel(name = "车速(km/h)")
    private BigDecimal vehicleSpeed;

    /** 总里程(km) */
    @Excel(name = "总里程(km)")
    private Long mileage;

    /** 系统电压(V) */
    @Excel(name = "系统电压(V)")
    private BigDecimal systemVoltage;

    /** 系统电流(A) */
    @Excel(name = "系统电流(A)")
    private BigDecimal systemCurrent;

    /** 绝缘电阻(KΩ) */
    @Excel(name = "绝缘电阻(KΩ)")
    private Long insulationResistance;

    /** 最大SOC(%) */
    @Excel(name = "最大SOC(%)")
    private BigDecimal socMax;

    /** 最小SOC(%) */
    @Excel(name = "最小SOC(%)")
    private BigDecimal socMin;

    /** GPV电压(V) */
    @Excel(name = "GPV电压(V)")
    private BigDecimal gpvVoltage;

    /** 行车阶段 */
    @Excel(name = "行车阶段")
    private Integer runStatus;

    /** 行车上电阶段 */
    @Excel(name = "行车上电阶段")
    private Integer powerStatus;

}
