soundcloud_rs/models/response/
users.rs

1use serde::{Deserialize, Serialize};
2
3use crate::models::response::PagingCollection;
4
5pub type Users = PagingCollection<User>;
6
7#[derive(Debug, Serialize, Deserialize, Default, Clone)]
8pub struct User {
9    pub avatar_url: Option<String>,
10    pub city: Option<String>,
11    pub comments_count: Option<i32>,
12    pub country_code: Option<String>,
13    pub created_at: Option<String>,
14    pub creator_subscriptions: Option<Vec<CreatorSubscriptionWrapper>>,
15    pub creator_subscription: Option<CreatorSubscriptionWrapper>,
16    pub description: Option<String>,
17    pub followers_count: Option<i32>,
18    pub followings_count: Option<i32>,
19    pub first_name: Option<String>,
20    pub full_name: Option<String>,
21    pub groups_count: Option<i32>,
22    pub id: Option<i64>,
23    pub kind: Option<String>,
24    pub last_modified: Option<String>,
25    pub last_name: Option<String>,
26    pub likes_count: Option<i32>,
27    pub playlist_likes_count: Option<i32>,
28    pub permalink: Option<String>,
29    pub permalink_url: Option<String>,
30    pub playlist_count: Option<i32>,
31    pub reposts_count: Option<i32>,
32    pub track_count: Option<i32>,
33    pub uri: Option<String>,
34    pub urn: Option<String>,
35    pub username: Option<String>,
36    pub verified: Option<bool>,
37    pub visuals: Option<Visuals>,
38    pub badges: Option<Badges>,
39    pub station_urn: Option<String>,
40    pub station_permalink: Option<String>,
41    pub date_of_birth: Option<DateOfBirth>,
42}
43
44#[derive(Debug, Serialize, Deserialize, Default, Clone)]
45pub struct CreatorSubscriptionWrapper {
46    pub product: Product,
47}
48
49#[derive(Debug, Serialize, Deserialize, Default, Clone)]
50pub struct Product {
51    pub id: String,
52}
53
54#[derive(Debug, Serialize, Deserialize, Default, Clone)]
55pub struct Visuals {
56    pub urn: Option<String>,
57    pub enabled: Option<bool>,
58    pub visuals: Option<Vec<VisualEntry>>,
59}
60
61#[derive(Debug, Serialize, Deserialize, Default, Clone)]
62pub struct VisualEntry {
63    pub urn: Option<String>,
64    pub entry_time: Option<i32>,
65    pub visual_url: Option<String>,
66}
67
68#[derive(Debug, Serialize, Deserialize, Default, Clone)]
69pub struct Badges {
70    pub pro: Option<bool>,
71    pub creator_mid_tier: Option<bool>,
72    pub pro_unlimited: Option<bool>,
73    pub verified: Option<bool>,
74}
75
76#[derive(Debug, Serialize, Deserialize, Default, Clone)]
77pub struct DateOfBirth {
78    pub month: Option<i8>,
79    pub year: Option<i16>,
80    pub day: Option<i8>,
81}
82
83#[derive(Debug, Serialize, Deserialize, Default, Clone)]
84pub struct UserSummary {
85    pub id: Option<i64>,
86    pub username: Option<String>,
87    pub permalink_url: Option<String>,
88    pub avatar_url: Option<String>,
89}