wecom_rs/client/common/model/
common.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize, Default)]
4pub struct ExternalProfile {
5 #[serde(skip_serializing_if = "Option::is_none")]
7 pub external_corp_name: Option<String>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub wechat_channels: Option<WechatChannel>,
10 pub external_attr: Vec<ExtAttribute>,
11}
12
13#[derive(Debug, Deserialize, Serialize, Default)]
14pub struct WechatChannel {
15 pub nickname: String,
17 pub status: u8,
18}
19
20#[derive(Debug, Deserialize, Serialize, Default)]
21pub struct ExtAttributes {
22 pub attrs: Vec<ExtAttribute>,
23}
24
25#[derive(Debug, Deserialize, Serialize, Default)]
26pub struct ExtAttribute {
27 #[serde(rename = "type")]
29 pub kind: u8,
30 pub name: String,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub text: Option<TextAttribute>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub web: Option<WebAttribute>,
38 #[serde(rename = "miniprogram", skip_serializing_if = "Option::is_none")]
39 pub mini_program: Option<MiniProgramAttribute>,
40}
41
42#[derive(Debug, Deserialize, Serialize, Default)]
43pub struct TextAttribute {
44 pub value: String,
46}
47
48#[derive(Debug, Deserialize, Serialize, Default)]
49pub struct WebAttribute {
50 pub url: String,
52 pub title: String,
54}
55
56#[derive(Debug, Deserialize, Serialize, Default)]
57pub struct MiniProgramAttribute {
58 #[serde(rename = "appid")]
59 pub app_id: String,
60 #[serde(rename = "pagepath")]
61 pub page_path: String,
62 pub title: String,
63}