package com.zsElectric.boot.charging.dto;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@Schema(description = "启动充电返回DTO")
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
public class StartChargingResponseVO {

    @Schema(description = "充电订单号(格式:运营商ID+唯一编号)",
            example = "123456789201805071630123456",
            required = true)
    @JsonProperty("StartChargeSeq")
    private String StartChargeSeq;

    @Schema(description = "充电订单状态(1-启动中,2-充电中,3-停止中,4-已结束,5-未知)",
            example = "1",
            allowableValues = {"1", "2", "3", "4", "5"},
            required = true)
    @JsonProperty("StartChargeSeqStat")
    private Integer StartChargeSeqStat;

    @Schema(description = "充电设备接口编码(参见《电动汽车充换电服务信息交换 第2部分:公共信息交换规范》)",
            example = "3702120244102_1",
            required = true)
    @JsonProperty("ConnectorID")
    private String ConnectorID;

    @Schema(description = "操作结果(0-成功,1-失败)",
            example = "0",
            allowableValues = {"0", "1"},
            required = true)
    @JsonProperty("SuccStat")
    private Integer SuccStat;

    @Schema(description = "失败原因(0-无,1-此设备不存在,2-此设备离线,其它-自定义)",
            example = "0",
            allowableValues = {"0", "1", "2"},
            required = true)
    @JsonProperty("FailReason")
    private Integer FailReason;

    @Schema(description = "失败原因描述",
            example = "无错误",
            required = true)
    @JsonProperty("FailReasonMsg")
    private String FailReasonMsg;
}