package cn.newfeifan.mall.module.trade.utils.push.pojo;

import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 推送通知类
 */

@Data
@Builder
public class RequestBody {
    /**
     * 推送平台
     * "all"就是所有
     * {"platform" : ["android", "ios","quickapp","hmos"] },这是指定
     */
    private String platform;
    /**
     * 推送目标
     * "all" 全部,"tag" 标签,"registration_id" 注册id,"alias" 别名
     */
    private Audience audience;
    /**
     * 通知
     */
    private NotificationData notification;
    /**
     * 通知的内容在各个平台上，都可能只有这一个最基本的属性 "alert"。
     * 这个位置的 "alert" 属性（直接在 notification 对象下），是一个快捷定义，各平台的 alert 信息如果都一样，则以此定义为准。如果各平台有定义，则覆盖这里的定义。
     */
    private String alert;
    /**
     * 自定义消息
     */
    private Message message;
    /**
     * 可选参数
     */
    private Options options;
    /**
     * 回调参数
     */
    private Callback callback;

    @Data
    public static class Audience {
        /**
         * 用户注册的极光id
         * 还有其他很多类型的选择,tag,alias,live_activity_id等等,不过我们项目就只用到这个
         */
        private List<String> registration_id;
    }
}