package com.jsowell.thirdparty.platform.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 充电状态信息
 *
 * @author Lemon
 * @Date 2024/6/11 14:31:36
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SupEquipChargeStatusInfo {

    /**
     * 平台运营商ID
     */
    @JSONField(name = "OperatorID")
    private String operatorID;

    /**
     * 充换电服务运营商ID
     */
    @JSONField(name = "EquipmentOwnerID")
    private String equipmentOwnerID;

    /**
     * 充换电站ID
     */
    @JSONField(name = "StationID")
    private String stationID;

    /**
     * 充电设备编码
     */
    @JSONField(name = "EquipmentID")
    private String equipmentID;

    /**
     * 充电订单号
     */
    @JSONField(name = "OrderNo")
    private String orderNo;

    /**
     * 充电订单状态
     * 1、启动中
     * 2、充电中
     * 3、停止中
     * 4、充电完成
     * 5、订单挂起
     * 6、充电异常结束
     * 7、启动失败
     */
    @JSONField(name = "OrderStatus")
    private Integer orderStatus;

    /**
     * 充电设备接口编码
     */
    @JSONField(name = "ConnectorID")
    private String connectorID;

    /**
     * 设备接口分类
     * 1：车辆充电设备接口
     * 2：换电站内的电池箱充电设备接口
     */
    @JSONField(name = "EquipmentClassification")
    private Integer equipmentClassification;

    /**
     * 推送时间
     */
    @JSONField(name = "PushTimeStamp")
    private String pushTimeStamp;

    /**
     * 充电设备接口状态
     * 0：离网
     * 1：空闲
     * 2： 占用（未充电）
     * 3： 占用（充电中）
     * 4： 占用（预约锁定）
     * 255：故障
     */
    @JSONField(name = "ConnectorStatus")
    private Integer connectorStatus;

    /**
     * A相电流
     * 小数点后4位
     */
    @JSONField(name = "CurrentA")
    private BigDecimal currentA;

    /**
     * 电池剩余电量
     * 小数点后1位
     */
    @JSONField(name = "SOC")
    private BigDecimal soc;

    /**
     * 开始充电时间
     */
    @JSONField(name = "StartTime")
    private String startTime;

    /**
     * 本次采样时间
     */
    @JSONField(name = "EndTime")
    private String endTime;

    /**
     * 累计充电量
     * 小数点后4位
     */
    @JSONField(name = "TotalPower")
    private BigDecimal totalPower;
}
