package com.evobms.project.bms.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.xiaoymin.knife4j.annotations.Ignore;
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_charge_detail
 *
 * @author tzy
 * @date 2026-02-23
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class BmsChargeDetail 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 timestamp;

    /** 慢充电流(A) */
    @Excel(name = "慢充电流(A)")
    private BigDecimal acChargeCurrent;

    /** 慢充电压(V) */
    @Excel(name = "慢充电压(V)")
    private BigDecimal acChargeVoltage;

    /** 快充电流(A) */
    @Excel(name = "快充电流(A)")
    private BigDecimal dcChargeCurrent;

    /** 快充电压(V) */
    @Excel(name = "快充电压(V)")
    private BigDecimal dcChargeVoltage;

    /** 充电时长(min) */
    @Excel(name = "充电时长(min)")
    private Long chargeTime;

    /** 慢充停止码 */
    @Excel(name = "慢充停止码")
    private Integer acStopCode;

    /** 快充停止码 */
    @Excel(name = "快充停止码")
    private Integer dcStopCode;

    /** 慢充CP值 */
    @Excel(name = "慢充CP值")
    private Integer acCpValue;

    /** 慢充枪阻值 */
    @Excel(name = "慢充枪阻值")
    private Integer acGunResistance;

    /** 充电阶段 */
    @Excel(name = "充电阶段")
    private Integer chargingStage;

    /** 慢充阶段 */
    @Excel(name = "慢充阶段")
    private Integer acStage;

    /** 快充阶段 */
    @Excel(name = "快充阶段")
    private Integer dcStage;


}
