package cn.iocoder.yudao.module.pms.hik;

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

import java.time.LocalDateTime;
import java.util.List;

@Data
public class IsapiAlarmEvent {
    private String ipAddress;
    private String portNo;
    private String protocol;
    private String dateTime;
    private Integer activePostCount;
    private String eventState;
    private String presetNo;
    private String eventType;
    private String eventDescription;
    @JsonProperty("MPName")
    private String mpName;
    private String url;
    private String taskId;
    @JsonProperty("channelID")
    private String channelID;
    private String protocolType;
    private String childDevID;


//    @JsonProperty("method")
//    private String method;  // 固定为"Event.notification"
//
//    @JsonProperty("params")
//    private EventParams params;
//
//    @Data
//    public static class EventParams {
//        @JsonProperty("activePostCount")
//        private Integer activePostCount;
//
//        @JsonProperty("eventType")
//        private String eventType;
//
//        @JsonProperty("eventDescription")
//        private String eventDescription;
//
//        @JsonProperty("eventState")
//        private String eventState;  // "active", "inactive"
//
//        @JsonProperty("dateTime")
//        @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
//        private LocalDateTime dateTime;
//
//        @JsonProperty("deviceID")
//        private String deviceID;
//
//        @JsonProperty("deviceName")
//        private String deviceName;
//
//        @JsonProperty("channelID")
//        private String channelID;
//
//        @JsonProperty("channelName")
//        private String channelName;
//
//        @JsonProperty("eventID")
//        private String eventID;
//
//        @JsonProperty("seq")
//        private Integer seq;
//
//        @JsonProperty("data")
//        private EventData data;
//    }
//
//    @Data
//    public static class EventData {
//
//        @JsonProperty("AlarmEvent")
//        private AlarmEvent alarmEvent;
//
//        @Data
//        public static class AlarmEvent {
//
//            @JsonProperty("EventList")
//            private EventList eventList;
//
//            @Data
//            public static class EventList {
//
//                @JsonProperty("Event")
//                private List<Event> event;
//
//                @Data
//                public static class Event {
//
//                    @JsonProperty("eventType")
//                    private String eventType;
//
//                    @JsonProperty("eventState")
//                    private String eventState;
//
//                    @JsonProperty("eventDescription")
//                    private String eventDescription;
//
//                    @JsonProperty("startDateTime")
//                    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
//                    private LocalDateTime startDateTime;
//
//                    @JsonProperty("endDateTime")
//                    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
//                    private LocalDateTime endDateTime;
//
//                    @JsonProperty("smartType")
//                    private String smartType;
//
//                    @JsonProperty("regionCoordinates")
//                    private String regionCoordinates;
//
//                    @JsonProperty("targetCoordinates")
//                    private String targetCoordinates;
//
//                    @JsonProperty("confidenceLevel")
//                    private Double confidenceLevel;
//
//                    @JsonProperty("imageURL")
//                    private String imageURL;
//
//                    @JsonProperty("videoURL")
//                    private String videoURL;
//                }
//            }
//        }
//    }
}