wecom_rs/client/common/model/
common.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize, Default)]
4pub struct ExternalProfile {
5    /// 企业简称
6    #[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    /// 视频号名称
16    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    /// 属性类型: 0-文本 1-网页 2-小程序
28    #[serde(rename = "type")]
29    pub kind: u8,
30    /// 属性名称: 需要先确保在管理端有创建该属性,否则会忽略
31    pub name: String,
32    /// 文本类型的属性
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub text: Option<TextAttribute>,
35    /// 网页类型的属性,url和title字段要么同时为空表示清除该属性,要么同时不为空
36    #[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    /// 文本属性内容,长度限制64个UTF8字符
45    pub value: String,
46}
47
48#[derive(Debug, Deserialize, Serialize, Default)]
49pub struct WebAttribute {
50    /// 网页的url,必须包含http或者https头
51    pub url: String,
52    ///	网页的展示标题,长度限制12个UTF8字符
53    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}