package com.jsowell.pile.vo.huawei;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 华为 查询充电状态VO
 *
 * @author Lemon
 * @Date 2024/1/26 16:29:29
 */
@Data
public class QueryChargeStatusVO {

    /**
     * 充电订单号
     */
    @JsonProperty(value = "StartChargeSeq")
    private String startChargeSeq;

    /**
     * 充电订单状态
     * 1：启动中
     * 2：充电中
     * 3：停止中
     * 4：已结束
     * 5：未知
     */
    @JsonProperty(value = "StartChargeSeqStat")
    private Integer startChargeSeqStat;

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

    /**
     * 充电设备接口状态
     * 0：离网
     * 1：空闲
     * 2：占用（未充电）
     * 3：占用（充电中）
     * 4：占用（预约锁定）
     * 255：充电枪故障
     * 21501：设备升级中
     * 21502：充电启动中
     * 21503：设备禁用
     */
    @JsonProperty(value = "ConnectorStatus")
    private Integer connectorStatus;

    /**
     * A相电流
     * 单位：A，默认：0 含直流(输出)
     */
    @JsonProperty(value = "CurrentA")
    private BigDecimal currentA;

    /**
     * B相电流
     */
    @JsonProperty(value = "CurrentB")
    private BigDecimal currentB;

    /**
     * C相电流
     */
    @JsonProperty(value = "CurrentC")
    private BigDecimal currentC;

    /**
     * A相电压
     */
    @JsonProperty(value = "VoltageA")
    private BigDecimal voltageA;

    /**
     * B相电压
     */
    @JsonProperty(value = "VoltageB")
    private BigDecimal voltageB;

    /**
     * C相电压
     */
    @JsonProperty(value = "VoltageC")
    private BigDecimal voltageC;

    /**
     * 电池剩余电量
     */
    @JsonProperty(value = "Soc")
    private BigDecimal soc;

    /**
     * 开始充电时间
     * 格式“yyyy-MM-dd HH:mm:ss”
     */
    @JsonProperty(value = "StartTime")
    private String startTime;

    /**
     * 本次采样时间
     * 格式“yyyy-MM-dd HH:mm:ss”
     */
    @JsonProperty(value = "EndTime")
    private String endTime;

    /**
     * 累计充电量
     * 单位：度，小数点后4位。
     */
    @JsonProperty(value = "TotalPower")
    private BigDecimal totalPower;

    /**
     * 累计电费
     * 单位：元，小数点后4位。
     */
    @JsonProperty(value = "ElecMoney")
    private BigDecimal elecMoney;

    /**
     * 累计服务费
     * 单位：元，小数点后4位。
     */
    @JsonProperty(value = "SeviceMoney")
    private BigDecimal seviceMoney;

    /**
     * 累计总金额
     * 单位：元，小数点后4位。
     */
    @JsonProperty(value = "TotalMoney")
    private BigDecimal totalMoney;

    /**
     * 时段数N
     * 范围：0～48
     */
    @JsonProperty(value = "SumPeriod")
    private Integer sumPeriod;

    /**
     * 充电明细信息
     * 单时段充电明细信息
     */
    @JsonProperty(value = "ChargeDetails")
    private List<ChargeDetail> chargeDetails;


    @Data
    public static class ChargeDetail{
        /**
         * 开始时间
         * 格式“yyyy-MM-dd HH:mm:ss”
         */
        @JsonProperty(value = "DetailStartTime")
        private String detailStartTime;

        /**
         * 结束时间
         * 格式“yyyy-MM-dd HH:mm:ss”
         */
        @JsonProperty(value = "DetailEndTime")
        private String detailEndTime;

        /**
         * 时段电价
         * 小数点后4位。
         */
        @JsonProperty(value = "ElecPrice")
        private BigDecimal elecPrice;

        /**
         * 时段服务费价格
         * 小数点后4位。
         */
        @JsonProperty(value = "SevicePrice")
        private BigDecimal sevicePrice;

        /**
         * 时段充电量
         * 单位：度，小数点后4位。
         */
        @JsonProperty(value = "DetailPower")
        private BigDecimal detailPower;

        /**
         * 时段电费
         * 小数点后4位
         */
        @JsonProperty(value = "DetailElecMoney")
        private BigDecimal detailElecMoney;

        /**
         * 时段服务费
         * 小数点后4位
         */
        @JsonProperty(value = "DetailSeviceMoney")
        private BigDecimal detailSeviceMoney;
    }
}
