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
use serde::Deserialize;
/// Represents a full user object from the Wattpad API.
///
/// This struct contains all the publicly available fields for a user's profile.
/// Some fields, noted in the comments, are only available when making an authenticated
/// request for the current user's own profile.
#[derive(Debug, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct User {
/// The user's unique, public username.
pub username: Option<String>,
/// The URL for the user's profile picture (avatar).
pub avatar: Option<String>,
/// A boolean flag indicating if the user's profile is private.
pub is_private: Option<bool>,
/// The URL for the user's profile background image.
pub background_url: Option<String>,
/// The user's display name.
pub name: Option<String>,
/// The user's full display name.
#[serde(rename = "fullname")]
pub full_name: Option<String>,
/// The "About Me" or biography section of the user's profile.
pub description: Option<String>,
/// A list of badges the user has earned.
pub badges: Option<Vec<String>>,
/// The user's current status message.
pub status: Option<String>,
/// The user's specified gender as a string.
pub gender: Option<String>,
/// A numerical code representing the user's gender.
pub gender_code: Option<String>,
/// The numerical identifier for the user's preferred language.
pub language: Option<u64>,
/// The user's locale string (e.g., "en_US").
pub locale: Option<String>,
/// The timestamp when the user's account was created.
pub create_date: Option<String>,
/// The timestamp when the user's profile was last modified.
pub modify_date: Option<String>,
/// The user's self-reported location.
pub location: Option<String>,
/// A boolean flag indicating if the user is a verified account (e.g., a celebrity or public figure).
pub verified: Option<bool>,
/// A boolean flag indicating if the user is a Wattpad Ambassador.
pub ambassador: Option<bool>,
/// A link to the user's Facebook profile.
pub facebook: Option<String>,
/// A link to the user's personal website.
pub website: Option<String>,
/// A link to the user's Lulu profile.
pub lulu: Option<String>,
/// A link to the user's Smashwords profile.
pub smashwords: Option<String>,
/// A link to the user's Bubok profile.
pub bubok: Option<String>,
/// The total number of votes received across all the user's stories.
pub votes_received: Option<u64>,
/// The number of stories the user has published.
pub num_stories_published: Option<u64>,
/// The number of other users this user is following.
pub num_following: Option<u64>,
/// The number of followers this user has.
pub num_followers: Option<u64>,
/// The number of public messages on the user's profile.
pub num_messages: Option<u64>,
/// The number of public reading lists the user has created.
pub num_lists: Option<u64>,
/// A boolean flag indicating if the user has verified their email address.
#[serde(rename = "verified_email")]
pub verified_email: Option<bool>,
/// A list of the user's preferred reading categories.
#[serde(rename = "preferred_categories")]
pub preferred_categories: Option<Vec<String>>,
/// A boolean flag indicating if the user allows search engine crawlers to index their profile.
pub allow_crawler: Option<bool>,
/// A deep link URL for the user's profile, often used for mobile app integration.
pub deeplink: Option<String>,
// // Authenticated fields (only available for the currently logged-in user)
// pub follower: Option<bool>,
// pub is_muted: Option<bool>,
// pub following: Option<bool>,
// pub birthdate: Option<String>,
// pub inbox: Option<Inbox>,
// pub notifications: Option<Notifications>,
// #[serde(rename = "connectedServices")]
// pub connected_services: Option<ConnectedServices>,
// pub age: Option<i64>,
// pub email: Option<String>,
// pub has_password: Option<bool>,
}