package com.jsowell.pile.dto.huawei;

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

import java.util.List;

/**
 * 接收计费策略结果DTO
 *
 * @author Lemon
 * @Date 2024/1/14 15:59:04
 */
@Data
public class ReceiveDeliverDTO {
    private String operatorId;

    /**
     * 策略下发流水号
     */
    @JsonProperty(value = "EquipBizSeq")
    private String equipBizSeq;

    /**
     * 业务策略结果返回的数量
     *
     * 一把枪当前下发后，响应业务策略信息执行结果的数量，
     * 生效结果支持多次返回，一次可以返回1个或多个，一个主机下某个计费长时间无结果，不阻塞其他枪充电。
     */
    @JsonProperty(value = "SumChargePolicyInfoRets")
    private Integer sumChargePolicyInfoRets;

    /**
     * 充电业务策略返回信息
     *
     * 批量不超过100把枪，每把枪返回对应的信息。
     */
    @JsonProperty(value = "ChargePolicyInfoRets")
    private List<ChargePolicyInfoRet> chargePolicyInfoRets;

    @Data
    public static class ChargePolicyInfoRet {

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

        /**
         * 计费策略ID
         *
         * 格式“运营商ID+唯一编号” ，不超过(<=27字符)。
         */
        @JsonProperty(value = "EquipBizID")
        private String equipBizID;

        /**
         * 操作结果
         * 0：成功
         * 1：失败
         */
        @JsonProperty(value = "SuccStat")
        private Integer succStat;

        /**
         * 失败原因
         * 0：无
         * 1：设备离线
         * 2：设备响应超时
         * 3：策略下发设备失败
         * 4：服务异常
         * 5：此充电枪不存在
         */
        @JsonProperty(value = "FailReason")
        private Integer failReason;
    }
}
