#[cfg(feature = "catchall")]
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
#[cfg(feature = "catchall")]
use serde_json::Value;
use super::{ArtistCore, Text, UserMetadata};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct UserResponse {
pub user: User,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct User {
pub about_me: Text,
pub custom_header_image_url: Option<String>,
pub followed_users_count: u32,
pub followers_count: u32,
pub iq_for_display: String,
pub photo_url: Option<String>,
pub roles_for_display: Vec<Role>,
pub stats: Stats,
pub artist: Option<ArtistCore>,
#[serde(flatten)]
pub core: UserCore<UserMetadata>,
#[cfg(feature = "catchall")]
#[serde(flatten)]
pub extra: HashMap<String, Value>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct UserCore<M> {
pub api_path: String,
pub avatar: Avatar,
pub header_image_url: String,
pub human_readable_role_for_display: Option<String>,
pub id: u32,
pub iq: i32,
pub login: String,
pub name: String,
pub role_for_display: Option<Role>,
pub url: String,
pub current_user_metadata: M,
}
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Role {
Regulator,
Staff,
VerifiedArtist,
Moderator,
Editor,
Mediator,
Contributor,
Transcriber,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct Avatar {
pub tiny: Image,
pub thumb: Image,
pub small: Image,
pub medium: Image,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct Image {
pub url: String,
pub bounding_box: BoundingBox,
}
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize, Default)]
pub struct BoundingBox {
pub width: u16,
pub height: u16,
}
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize, Default)]
pub struct Stats {
pub annotations_count: u32,
pub answers_count: u32,
pub comments_count: u32,
pub forum_posts_count: u32,
pub pyongs_count: u32,
pub questions_count: u32,
pub transcriptions_count: u32,
}