1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
use super::*;
#[derive(Deserialize, Clone, Debug)]
pub struct WallAttachment {
#[serde(rename = "type")]
pub type_: String,
pub photo: Option<photo::Photo>,
pub posted_photo: Option<PostedPhoto>,
pub video: Option<video::Video>,
pub audio: Option<audio::Audio>,
pub doc: Option<document::Document>,
pub graffiti: Option<Graffiti>,
pub link: Option<link::Link>,
pub note: Option<note::Note>,
pub app: Option<App>,
pub poll: Option<poll::Poll>,
pub page: Option<page::Page>,
pub album: Option<photo::Album>,
pub photos_list: Option<Vec<String>>,
pub market: Option<market_item::MarketItem>,
pub market_album: Option<market_album::MarketAlbum>,
pub sticker: Option<sticker::Sticker>,
pub cards: Option<Vec<Card>>,
}
#[derive(Deserialize, Clone, Debug)]
pub struct PostedPhoto {
pub id: Integer,
pub owner_id: Integer,
pub photo_130: String,
pub photo_604: String,
pub access_key: Option<String>,
}
#[derive(Deserialize, Clone, Debug)]
pub struct Graffiti {
pub id: Integer,
pub owner_id: Integer,
pub photo_130: String,
pub photo_604: String,
pub access_key: Option<String>,
}
#[derive(Deserialize, Clone, Debug)]
pub struct App {
pub id: Integer,
pub name: String,
pub photo_130: String,
pub photo_604: String,
pub access_key: Option<String>,
}
#[derive(Deserialize, Clone, Debug)]
pub struct Card {
pub card_id: String,
pub link_url: String,
pub title: String,
pub images: Vec<photo::Image>,
pub button: button::Button,
pub price: String,
pub price_old: Option<String>,
}
#[derive(Deserialize, Clone, Debug)]
pub struct MessageAttachment {
#[serde(rename = "type")]
pub type_: String,
pub photo: Option<photo::Photo>,
pub video: Option<video::Video>,
pub audio: Option<audio::Audio>,
pub doc: Option<document::Document>,
pub link: Option<link::Link>,
pub market: Option<market_item::MarketItem>,
pub market_album: Option<market_album::MarketAlbum>,
pub wall: Option<post::Post>,
pub wall_reply: Option<comment::Comment>,
pub sticker: Option<sticker::Sticker>,
pub gift: Option<gift::Gift>,
}