package com.sz.admin.monitor.pojo.vo.edgebox;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.sz.admin.monitor.pojo.dto.edgebox.AlarmReportDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.util.List;

/**
 * ClassName: AlarmReportVO
 * Package: com.sz.admin.monitor.pojo.vo.edgebox
 * Description:
 */
@Data
@Schema(description = "alarmReport返回vo")
public class AlarmReportVO {
    @Schema(description = "违规描述")
    private String summary;
    @Schema(description = "任务描述")
    private String taskDesc;
    @Schema(description = "任务会话")
    private String taskSession;
    @Schema(description = "报警盒子IP")
    private String boardIp;
    @Schema(description = "告警类别")
    private String alarmType;
    @Schema(description = "视频Rtsp地址")
    private String rtspUrl;
    @Schema(description = "基准图路径 ")
    private String baseImage;
    @Schema(description = "抓拍图路径")
    private String captureImage;
    @Schema(description = "报警结果")
    private SimpleResult result;
    @Data
    public static class SimpleResult {

        /**
         * 告警中文描述
         */
        @JsonProperty("Description")
        private String description;

        /**
         * 详细属性列表 (如: 置信度、人脸小图等)
         */
        @JsonProperty("Properties")
        private List<SimpleProperty> properties;
    }

    @Data
    public static class SimpleProperty {
        /**
         * 属性名 (如: FrontFaceScore)
         */
        @JsonProperty("property")
        private String property;

        /**
         * 属性中文名 (如: 人脸置信度)
         */
        @JsonProperty("desc")
        private String desc;

        /**
         * 属性值 (可能是数字、字符串或 Base64)
         */
        @JsonProperty("value")
        @ToString.Exclude
        private Object value;
    }
}
