package com.cyksj.model.kf;

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

/**
 * @author chan
 * @date 2023-05-12 12:17 PM
 */
@NoArgsConstructor
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WxCorpKfMsgSendRequest {
  /**
   * (发送欢迎语等事件响应消息) 事件响应消息对应的code。通过事件回调下发，仅可使用一次。
   */
  private String code;
  /**
   * <pre>
   *   参数：touser
   *   是否必须：是
   *   类型：string
   *   说明：指定接收消息的客户UserID
   * </pre>
   */
  @JsonProperty("touser")
  private String toUser;
  /**
   * <pre>
   *   参数：open_kfid
   *   是否必须：是
   *   类型：string
   *   说明：指定发送消息的客服帐号ID
   * </pre>
   */
  @JsonProperty("open_kfid")
  private String openKfid;
  /**
   * <pre>
   *   参数：msgid
   *   是否必须：否
   *   类型：string
   *   说明：指定消息ID
   * </pre>
   */
  @JsonProperty("msgid")
  private String msgId;
  /**
   * <pre>
   *   参数：msgtype
   *   是否必须：是
   *   类型：string
   *   说明：消息类型，（text,image,voice,video,file,link,miniprogram,msgmenu,location)
   * </pre>
   */
  @JsonProperty("msgtype")
  private String msgType;
  /**
   * <pre>
   *   参数：text
   *   是否必须：是
   *   类型：obj
   *   说明：文本消息
   * </pre>
   */
  private WxCpKfTextMsg text;


  @Data
  public static class WxCpKfTextMsg {

    /**
     * <pre>
     *   参数：content
     *   是否必须：是
     *   类型：string
     *   说明：消息内容，最长不超过2048个字节
     * </pre>
     */
    private String content;
    @JsonProperty("menu_id")
    private String menuId;
  }

}
