package com.heyu.api.resp.imageaudit;


import com.heyu.api.data.dto.BaseResp;
import lombok.Data;

import java.util.List;

/***
 *
 *
 * https://next.api.aliyun.com/api/imageaudit/2019-12-30/ScanImage?RegionId=cn-shanghai&params={%22Task%22:[{%22ImageURL%22:%22http://workbench-file-transfer.oss-cn-shanghai.aliyuncs.com/user-files/3d1ce4eb-1ff5-4210-adf1-8f4413cd39e7-Xnip2025-03-16_16-03-24.jpg?OSSAccessKeyId&Expires=1742112424&Signature=h5EZtZ5dk4hiLMKw7oEK1NsdSwQ%3D&response-content-disposition=attachment%22}]}&tab=DOC&lang=JAVA
 *
 *
 *
 */
@Data
public class ScanImageResp extends BaseResp {


    /***
     * 图像 URL 地址。
     *
     * 示例值:
     * http://xxx.xxx.xxx/xxx.jpg
     *
     */
    private String imageURL;


    private List<SubResults> subResults;


    /***
     * 单张图片的检测结果。
     *
     */
    @Data
    public static class SubResults {
        /**
         * 如果待检测图片因为过长被截断，该参数返回截断后的每一帧图像的临时访问地址供您参考。
         * 被截断的图片的临时访问 URL，地址有效期是 5 分钟。
         *
         * 示例值:
         * http://xxx.xxx.com/xxx-0.jpg
         * Rate
         * number<float>
         * 结果为该分类的概率，取值范围为 0~100。值越高，表示越有可能属于该分类。
         *
         * 示例值:
         * 89.85
         */
        private List<SubResultsFrames> subResultsFrames;

        /***
         * 图片中含有广告时，返回图片中广告文字命中的风险关键词信息。格式为数组。
         *
         * 说明 仅适用于 ad 场景。示例值：”hintWordsInfo”:[{“context”:”敏感词”}]。
         *
         */
        private List<SubResultsHintWordsInfoList> subResultsHintWordsInfoList;

        /***
         * 图片中含有 Logo 时，返回识别出来的 Logo 信息。
         *
         * 说明 仅适用于 Logo 场景。
         */
        private List<SubResultsLogoDataList> subResultsLogoDataList;


        /***
         * 识别到的图片中的完整文字信息。
         *
         * 示例值:
         * abc
         *
         */
        public java.util.List<String> OCRDataList;

        /***
         * 图片中含有小程序码时，返回小程序码的位置信息。
         *
         * 说明 仅适用于 qrcode 场景，且已通过钉钉群（23109592）联系我们开通了小程序码识别。
         *
         */
        private List<SubResultsProgramCodeDataList> subResultsProgramCodeDataListList;


        public Float rate;

        public String scene;

        /***
         * 图片中包含暴恐敏感内容时，返回识别出来的暴恐敏感信息。
         *
         * 说明 仅适用于 terrorism 和 sface 场景。关于该参数在 sface 场景中的具体内容，请参见敏感人脸检测。
         *
         */
        public java.util.List<SubResultsSfaceDataList> sfaceDataList;

        /**
         * 建议您执行的操作。
         *
         * pass：图片正常，无需进行其余操作；或者未识别出目标对象。
         *
         * review：检测结果不确定，需要进行人工审核；或者未识别出目标对象。
         *
         * block：图片违规，建议执行进一步操作（如直接删除或做限制处理）。
         *
         * 示例值:
         * block
         *
         */
        public String suggestion;


    }


    @Data
    public static class SubResultsFrames {
        public Float rate;

        public String URL;


    }


    @Data
    public static class SubResultsHintWordsInfoList {

        public String context;

    }


    @Data
    public static class SubResultsLogoDataList {
        /**
         * Logo 区域高度。
         *
         * 示例值:
         * 106
         */
        public Float height;

        /**
         * 识别出的 Logo 名称。
         *
         * 示例值:
         * abc
         */
        public String name;

        /**
         * 识别出的 logo 类型，取值为 TV（台标）。
         *
         * 示例值:
         * TV
         */
        public String type;

        /**
         * Logo 区域宽度。
         *
         * 示例值:
         * 106
         *
         */
        public Float width;

        /**
         * 以图片左上角为坐标原点，Logo 区域左上角到 x 轴距离。
         *
         * 示例值:
         * 68
         */
        public Float x;

        /**
         * 以图片左上角为坐标原点，Logo 区域左上角到 y 轴距离。
         *
         * 示例值:
         * 140
         */
        public Float y;


    }


    @Data
    public static class SubResultsProgramCodeDataList {
        /**
         *小程序码区域高度。
         *
         * 示例值:
         * 413.0
         */
        public Float height;
        /**
         * 小程序码区域宽度。
         *
         * 示例值:
         * 402.0
         */
        public Float width;

        /**
         * 以图片左上角为坐标原点，小程序码区域左上角到 y 轴距离。
         *
         * 示例值:
         * 11.0
         *
         */
        public Float x;

        /**
         * 以图片左上角为坐标原点，小程序码区域左上角到 x 轴距离。
         *
         * 示例值:
         * 0.0
         */
        public Float y;


    }


    @Data
    public static class SubResultsSfaceDataListFaces {

        /***
         * 人脸 ID。
         *
         * 示例值:
         * AliFace_0001234
         */
        public String id;
        /**
         * 相似人物的名称。
         *
         * 示例值:
         * abc
         */
        public String name;

        /**
         * 相似概率。
         *
         * 示例值:
         * 91.54
         */
        public Float rate;


    }


    @Data
    public static class SubResultsSfaceDataList {
        /**
         * 识别出的人脸信息。
         */
        public List<SubResultsSfaceDataListFaces> faces;
    }

}