use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use super::visual::Visuals;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BasicUser {
pub avatar_url: String,
pub first_name: String,
pub followers_count: i32,
pub full_name: String,
pub id: u64,
pub kind: String,
pub last_modified: DateTime<Utc>,
pub last_name: String,
pub permalink: String,
pub permalink_url: String,
pub uri: String,
pub urn: String,
pub username: String,
pub verified: bool,
pub city: Option<String>,
pub country_code: Option<String>,
pub badges: Badges,
pub station_urn: Option<String>,
pub station_permalink: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct User {
#[serde(flatten)]
pub user: BasicUser,
pub comments_count: i32,
pub created_at: Option<DateTime<Utc>>,
pub creator_subscriptions: Vec<CreatorSubscription>,
pub creator_subscription: CreatorSubscription,
pub description: Option<String>,
pub followings_count: i32,
pub groups_count: i32,
pub likes_count: Option<i32>,
pub playlist_likes_count: Option<i32>,
pub playlist_count: i32,
pub reposts_count: Option<i32>,
pub track_count: i32,
pub visuals: Option<Visuals>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UltraBasicUser {
pub id: u64,
pub username: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MissingUser {
pub id: u64,
pub kind: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserEmail {
pub address: String,
pub confirmed: bool,
pub id: u64,
pub kind: String,
pub last_modified: DateTime<Utc>,
pub primary: bool,
pub urn: String,
pub user_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserStatus {
pub status: String,
pub timestamp: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Product {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreatorSubscription {
pub product: Product,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Badges {
pub pro: bool,
pub pro_unlimited: bool,
pub verified: bool,
}