package com.zanxiang.game.module.sdk.pojo.dto;

import lombok.Data;

/**
 * @author : lingfeng
 * @time : 2023-01-05
 * @description : 小程序消息
 */
@Data
public class AppletMsgDTO {

    /**
     * 客户文本消息
     */
    public static final String MSG_TYPE_TEXT = "text";

    /**
     * 回调事件消息
     */
    public static final String MSG_TYPE_EVENT = "event";

    /**
     * 米大师支付回调事件
     */
    public static final String EVENT_MI_PAY_CALL_BACK = "minigame_coin_deliver_completed";

    /**
     * 用户进入会话事件
     */
    public static final String EVENT_USER_ENTER_TEMP_SESSION = "user_enter_tempsession";

    /**
     * 客服进入会话事件
     */
    public static final String EVENT_USER_KF_CREATE_SESSION = "kf_create_session";

    /**
     * 客服支付约定消息文本
     */
    public static final String MSG_CONTENT_PAY = "2";

    /**
     * 开发者微信号
     */
    private String ToUserName;

    /**
     * 发送方帐号（一个OpenID）
     */
    private String FromUserName;

    /**
     * 消息创建时间 （整型）
     */
    private String CreateTime;

    /**
     * 消息类型，文本为text
     */
    private String MsgType;

    /**
     * 事件类型
     */
    private String Event;

    /**
     * 文本消息内容
     */
    private String Content;

    /**
     * 消息id，64位整型
     */
    private Long MsgId;

    /**
     * 米大师支付回调通知内容
     */
    private MiniGameBean MiniGame;

    @Data
    public static class MiniGameBean {

        /**
         * 支付参数信息
         */
        private String Payload;

        /**
         * 支付参数的签名算法
         */
        private String PayEventSig;

        /**
         * 是否是模拟数据
         */
        private Boolean IsMock;
    }

    @Data
    public static class PayloadBean {

        /**
         * 用户openid
         */
        private String OpenId;

        /**
         * 业务订单号
         */
        private String OutTradeNo;

        /**
         * 微信支付信息
         */
        private WeChatPayInfoBean WeChatPayInfo;

        /**
         * 环境配置, 0：现网环境（也叫正式环境）, 1：沙箱环境
         */
        private Long Env;

        /**
         * 游戏币信息
         */
        private CoinInfoBean CoinInfo;
    }

    @Data
    public static class WeChatPayInfoBean {

        /**
         * 微信支付商户单号
         */
        private String MchOrderNo;

        /**
         * 交易单号（微信支付订单号）
         */
        private String TransactionId;

    }

    @Data
    public static class CoinInfoBean {

        /**
         * 游戏道具id标识
         */
        private String ZoneId;

        /**
         * 实际支付价格(分)
         */
        private Long ActualPrice;

        /**
         * 购买数量
         */
        private Long BuyQuantity;

        /**
         * 原始价格(分)
         */
        private Long OrigPrice;
    }
}
