gewe-core 0.1.4

Core types and definitions for gewe WeChat SDK
Documentation
use super::common::FinderRawData;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SendFinderMsgRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    #[serde(rename = "toWxid")]
    pub to_wxid: &'a str,
    pub id: i64,
    pub username: &'a str,
    pub nickname: &'a str,
    #[serde(rename = "headUrl")]
    pub head_url: &'a str,
    #[serde(rename = "nonceId")]
    pub nonce_id: &'a str,
    #[serde(rename = "mediaType")]
    pub media_type: &'a str,
    pub width: &'a str,
    pub height: &'a str,
    pub url: &'a str,
    #[serde(rename = "thumbUrl")]
    pub thumb_url: &'a str,
    #[serde(rename = "thumbUrlToken")]
    pub thumb_url_token: &'a str,
    pub description: &'a str,
    #[serde(rename = "videoPlayLen")]
    pub video_play_len: &'a str,
}

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PostPrivateLetterRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    pub content: &'a str,
    #[serde(rename = "toUserName")]
    pub to_user_name: &'a str,
    #[serde(rename = "myUserName")]
    pub my_user_name: &'a str,
    #[serde(rename = "msgSessionId")]
    pub msg_session_id: &'a str,
}

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PostPrivateLetterImgRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    #[serde(rename = "toUserName")]
    pub to_user_name: &'a str,
    #[serde(rename = "myUserName")]
    pub my_user_name: &'a str,
    #[serde(rename = "msgSessionId")]
    pub msg_session_id: &'a str,
    #[serde(rename = "imgUrl")]
    pub img_url: &'a str,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PrivateLetterResponse {
    #[serde(rename = "newMsgId")]
    pub new_msg_id: i64,
}

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SyncPrivateLetterMsgRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(rename = "keyBuff")]
    pub key_buff: Option<&'a str>,
}

pub type SyncPrivateLetterMsgResponse = FinderRawData;

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct MentionListRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    #[serde(rename = "myUserName")]
    pub my_user_name: &'a str,
    #[serde(rename = "myRoleType")]
    pub my_role_type: i32,
    #[serde(rename = "reqScene")]
    pub req_scene: i32,
    #[serde(rename = "lastBuff")]
    pub last_buff: &'a str,
}

pub type MentionListResponse = FinderRawData;

#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ContactListRequest<'a> {
    #[serde(rename = "appId")]
    pub app_id: &'a str,
    #[serde(rename = "myUserName")]
    pub my_user_name: &'a str,
    #[serde(rename = "myRoleType")]
    pub my_role_type: i32,
    #[serde(rename = "queryInfo")]
    pub query_info: &'a str,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ContactExtInfo {
    pub country: String,
    pub province: String,
    pub city: String,
    pub sex: i32,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ContactMsgInfo {
    #[serde(rename = "msgUsername")]
    pub msg_username: String,
    #[serde(rename = "sessionId")]
    pub session_id: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ContactListEntry {
    pub username: Option<String>,
    pub nickname: Option<String>,
    #[serde(rename = "headUrl")]
    pub head_url: Option<String>,
    pub signature: Option<String>,
    #[serde(rename = "extInfo")]
    pub ext_info: Option<ContactExtInfo>,
    #[serde(rename = "msgInfo")]
    pub msg_info: Option<ContactMsgInfo>,
    #[serde(rename = "wxUsernameV5")]
    pub wx_username_v5: Option<String>,
}