package com.jsowell.thirdparty.lianlian.vo;

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

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

/**
 * 查询充电状态VO
 *
 * @author JS-ZZA
 * @date 2023/4/24 14:33
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QueryChargingStatusVO {

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

    /**
     * 充电订单状态
     */
    @JSONField(name = "StartChargeSeqStat")
    private int startChargeSeqStat;

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

    /**
     * 充电设备接口状态
     */
    @JSONField(name = "ConnectorStatus")
    private int connectorStatus;

    /**
     * 车辆识别码
     */
    @JSONField(name = "Vin")
    private String vin;

    /**
     * A 相电流
     */
    @JSONField(name = "CurrentA")
    private BigDecimal currentA;

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

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

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

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

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

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

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

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

    /**
     * 累计充电量
     */
    @JSONField(name = "TotalPower")
    private BigDecimal totalPower;

    /**
     * 累计电费
     */
    @JSONField(name = "ElecMoney")
    private BigDecimal elecMoney;

    /**
     * 累计服务费
     */
    @JSONField(name = "SeviceMoney")
    private BigDecimal seviceMoney;

    /**
     * 累计总金额
     */
    @JSONField(name = "TotalMoney")
    private BigDecimal totalMoney;

    /**
     * 是否可申请停车费减免
     */
    // @JSONField(name = "ParkingFeeDiscount")
    // private int parkingFeeDiscount;

    /**
     * 时段数 N  范围：0～32
     */
    // @JSONField(name = "SumPeriod")
    // private int sumPeriod;

    /**
     * 充电明细信息
     */
    @JSONField(name = "ChargeDetails")
    private List<ChargeDetail> chargeDetails;

    /**
     * 充电明细信息体
     */
    @Data
    public static class ChargeDetail {
        /**
         * 开始时间
         */
        @JSONField(name = "DetailStartTime")
        private String detailStartTime;

        /**
         * 结束时间
         */
        @JSONField(name = "DetailEndTime")
        private String detailEndTime;

        /**
         * 时段电价
         */
        @JSONField(name = "ElecPrice")
        private BigDecimal elecPrice;

        /**
         * 时段服务费价格
         */
        @JSONField(name = "SevicePrice")
        private BigDecimal sevicePrice;

        /**
         * 时段充电量
         */
        @JSONField(name = "DetailPower")
        private BigDecimal detailPower;

        /**
         * 时段电费
         */
        @JSONField(name = "DetailElecMoney")
        private BigDecimal detailElecMoney;

        /**
         * 时段服务费
         */
        @JSONField(name = "DetailSeviceMoney")
        private BigDecimal detailSeviceMoney;
    }
}
