package com.jsowell.pile.domain.huawei;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * TODO
 *
 * @author Lemon
 * @Date 2024/1/15 14:03:40
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class HWStationInfo {
    /**
     * 充电站ID
     */
    @JsonProperty(value = "StationID")
    private String stationId;

    /**
     * 充电站名称
     */
    @JsonProperty(value = "StationName")
    private String stationName;

    /**
     * 充电设备数量
     */
    @JsonProperty(value = "EquipmentInfoNum")
    private Integer equipmentInfoNum;

    /**
     * 充电设备信息列表
     */
    @JsonProperty(value = "EquipmentLogicInfos")
    private List<EquipmentLogicInfo> equipmentLogicInfos;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class EquipmentLogicInfo {

        /**
         * 充电设备编码
         */
        @JsonProperty(value = "EquipmentID")
        private String equipmentId;

        /**
         * 充电设备类型 N
         */
        @JsonProperty(value = "EquipmentType")
        private Integer equipmentType;

        /**
         * 充电设备ESN
         */
        @JsonProperty(value = "ChargeHostESN")
        private String chargeHostESN;

        /**
         * 充电设备接口数量
         */
        @JsonProperty(value = "ConnectorInfoNum")
        private Integer connectorInfoNum;

        /**
         * 充电设备接口信息列表
         */
        @JsonProperty(value = "ConnectorInfos")
        private List<ConnectorInfo> connectorInfos;


        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        @Builder
        public static class ConnectorInfo {
            /**
             * 充电设备接口编码
             */
            @JsonProperty(value = "ConnectorID")
            private String connectorID;

            /**
             * 充电设备接口编号
             */
            @JsonProperty(value = "ConnectorNumber")
            private Integer connectorNumber;

            /**
             * 充电设备接口名称 N
             */
            @JsonProperty(value = "ConnectorName")
            private String connectorName;
        }
    }
}
