use serde::{Serialize, Deserialize};
use std::collections::BTreeMap as Map;
#[derive(Serialize, Deserialize, Debug)]
pub struct User {
pub api_path: String,
pub avatar: Map<String, AvatarImage>,
pub header_image_url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub human_readable_role_for_display: Option<String>,
pub id: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub iq: Option<u32>,
pub login: String,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub role_for_display: Option<String>,
pub url: String,
pub current_user_metadata: UserMetadata,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct AvatarImage {
pub url: String,
pub bounding_box: Map<String, u32>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UserMetadata {
pub permissions: Vec<String>,
pub excluded_permissions: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub interactions: Option<Interactions>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct Interactions {
#[serde(skip_serializing_if = "Option::is_none")]
pub cosign: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pyong: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vote: Option<u32>,
}