package com.evobms.project.vehicledata.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;

/**
 * 整车数据对象 vehicle_data
 *
 * @author 田志阳
 * @date 2025-11-15
 */
@ApiModel(description = "整车数据对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class VehicleData 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;

    /** 车辆状态 (1:启动 2:熄火 3:其他 254:异常 255:无效) */
    @ApiModelProperty(value = "车辆状态 (1:启动 2:熄火 3:其他 254:异常 255:无效)")
    @Excel(name = "车辆状态 (1:启动 2:熄火 3:其他 254:异常 255:无效)")
    private Integer vehicleStatus;

    /** 充电状态 (1:停车充电 2:行驶充电 3:未充电 4:充电完成 254:异常 255:无效) */
    @ApiModelProperty(value = "充电状态 (1:停车充电 2:行驶充电 3:未充电 4:充电完成 254:异常 255:无效)")
    @Excel(name = "充电状态 (1:停车充电 2:行驶充电 3:未充电 4:充电完成 254:异常 255:无效)")
    private Integer chargingStatus;

    /** 运行模式 (1:纯电 2:混动 3:燃油 254:异常 255:无效) */
    @ApiModelProperty(value = "运行模式 (1:纯电 2:混动 3:燃油 254:异常 255:无效)")
    @Excel(name = "运行模式 (1:纯电 2:混动 3:燃油 254:异常 255:无效)")
    private Integer operationMode;

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

    /** 累计里程(km) */
    @ApiModelProperty(value = "累计里程(km)")
    @Excel(name = "累计里程(km)")
    private BigDecimal totalMileage;

    /** 总电压(V) */
    @ApiModelProperty(value = "总电压(V)")
    @Excel(name = "总电压(V)")
    private BigDecimal totalVoltage;

    /** 总电流(A) */
    @ApiModelProperty(value = "总电流(A)")
    @Excel(name = "总电流(A)")
    private BigDecimal totalCurrent;

    /** SOC电量百分比(%) */
    @ApiModelProperty(value = "SOC电量百分比(%)")
    @Excel(name = "SOC电量百分比(%)")
    private Integer soc;

    /** DC-DC状态 (1:工作 2:断开) */
    @ApiModelProperty(value = "DC-DC状态 (1:工作 2:断开)")
    @Excel(name = "DC-DC状态 (1:工作 2:断开)")
    private Integer dcdcStatus;

    /** 档位 (0:空档 1-6:1-6档 13:倒档 14:自动D档 15:停车P档) */
    @ApiModelProperty(value = "档位 (0:空档 1-6:1-6档 13:倒档 14:自动D档 15:停车P档)")
    @Excel(name = "档位 (0:空档 1-6:1-6档 13:倒档 14:自动D档 15:停车P档)")
    private Integer gearPosition;

    /** 绝缘电阻(kΩ) */
    @ApiModelProperty(value = "绝缘电阻(kΩ)")
    @Excel(name = "绝缘电阻(kΩ)")
    private Integer insulationResistance;

    /** 预留字段 */
    @ApiModelProperty(value = "预留字段")
    @Excel(name = "预留字段")
    private String reservedData;


}
