agent_twitter_client/models/
tweets.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct Tweet {
6    pub ext_views: Option<i32>,
7    pub created_at: Option<String>,
8    pub bookmark_count: Option<i32>,
9    pub conversation_id: Option<String>,
10    pub hashtags: Vec<String>,
11    pub html: Option<String>,
12    pub id: Option<String>,
13    pub in_reply_to_status: Option<Box<Tweet>>,
14    pub in_reply_to_status_id: Option<String>,
15    pub is_quoted: Option<bool>,
16    pub is_pin: Option<bool>,
17    pub is_reply: Option<bool>,
18    pub is_retweet: Option<bool>,
19    pub is_self_thread: Option<bool>,
20    pub likes: Option<i32>,
21    pub name: Option<String>,
22    pub mentions: Vec<Mention>,
23    pub permanent_url: Option<String>,
24    pub photos: Vec<Photo>,
25    pub place: Option<PlaceRaw>,
26    pub quoted_status: Option<Box<Tweet>>,
27    pub quoted_status_id: Option<String>,
28    pub replies: Option<i32>,
29    pub retweets: Option<i32>,
30    pub retweeted_status: Option<Box<Tweet>>,
31    pub retweeted_status_id: Option<String>,
32    pub text: Option<String>,
33    pub thread: Vec<Tweet>,
34    pub time_parsed: Option<DateTime<Utc>>,
35    pub timestamp: Option<i64>,
36    pub urls: Vec<String>,
37    pub user_id: Option<String>,
38    pub username: Option<String>,
39    pub videos: Vec<Video>,
40    pub views: Option<i32>,
41    pub sensitive_content: Option<bool>,
42    pub poll: Option<PollV2>,
43    pub quote_count: Option<i32>,
44    pub reply_count: Option<i32>,
45    pub retweet_count: Option<i32>,
46    pub screen_name: Option<String>,
47    pub thread_id: Option<String>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct Mention {
52    pub id: String,
53    pub username: Option<String>,
54    pub name: Option<String>,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct Photo {
59    pub id: String,
60    pub url: String,
61    pub alt_text: Option<String>,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
65pub struct Video {
66    pub id: String,
67    pub preview: String,
68    pub url: Option<String>,
69}
70
71#[derive(Debug, Clone, Serialize, Deserialize)]
72pub struct PlaceRaw {
73    pub id: Option<String>,
74    pub place_type: Option<String>,
75    pub name: Option<String>,
76    pub full_name: Option<String>,
77    pub country_code: Option<String>,
78    pub country: Option<String>,
79    pub bounding_box: Option<BoundingBox>,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83pub struct BoundingBox {
84    #[serde(rename = "type")]
85    pub type_: Option<String>,
86    pub coordinates: Option<Vec<Vec<Vec<f64>>>>,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
90pub struct PollV2 {
91    pub id: Option<String>,
92    pub end_datetime: Option<String>,
93    pub voting_status: Option<String>,
94    pub options: Vec<PollOption>,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
98pub struct PollOption {
99    pub position: Option<i32>,
100    pub label: String,
101    pub votes: Option<i32>,
102}