package com.fs.wxwork.dto;

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

import java.util.List;

/**
 * 群发消息请求DTO
 *
 * @author xdd
 * @date 2025-02-27
 */
@Data
public class WxwSendGroupsMsgDTO {

    /**
     * 每个实例的唯一标识，根据uuid操作具体企业微信
     */
    private String uuid;

    /**
     * 要发送的人或者群id, 不能混填
     */
    private List<Long> vids;

    /**
     * 是否是群消息
     */
    @JsonProperty("isroom")
    private boolean isRoom;

    /**
     * 消息列表
     */
    @JsonProperty("msg_list")
    private List<MsgItem> msgList;

    /**
     * 消息内容
     */
    @Data
    public static class MsgItem {
        /**
         * 消息类型
         * 0: 文字
         * 14: 图片
         * 13: 链接
         * 78: 小程序
         * 15: 文件
         * 23: 视频
         */
        private Integer type;

        /**
         * 文本内容, type=0时使用
         */
        private String content;

        /**
         * 图片/文件/视频的aeskey, type=14/15/23时使用
         */
        private String aeskey;

        /**
         * 图片/文件/视频/小程序的cdnkey, type=14/15/23/78时使用
         */
        private String cdnkey;

        /**
         * 图片/文件/视频的大小, type=14/15/23时使用
         */
        @JsonProperty("fileSize")
        private Integer fileSize;

        /**
         * 图片/文件/视频/小程序的md5, type=14/15/23/78时使用
         */
        private String md5;

        /**
         * 链接的url, type=13时使用
         */
        private String url;

        /**
         * 链接的标题, type=13时使用
         */
        private String title;

        /**
         * 链接的内容, type=13时使用
         */
        @JsonProperty("content")
        private String linkContent;

        /**
         * 链接的头图, type=13时使用
         */
        @JsonProperty("headImg")
        private String headImg;

        /**
         * 小程序简介 type = 78
         */
        private String desc;
        /**
         * 小程序图标url type = 78
         */
        private String weappIconUrl;
        /**
         * 小程序appid type=78
         */
        private String appid;
        /**
         * 小程序username type = 78
         */
        private String username;
        /**
         * 小程序pagepath type=78
         */
        private String pagepath;
        /**
         * 文件名, type=15时使用
         */
        @JsonProperty("fileName")
        private String fileName;

        /**
         * 视频时长, type=23时使用
         */
        @JsonProperty("VideoDuration")
        private Integer videoDuration;

        /**
         * 视频封面图大小 type = 23
         */
        @JsonProperty("video_img_size")
        private Integer videoImgSize;
    }
}
