use serde::{Deserialize, Serialize};
use steamid::SteamID;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupInfo {
pub steamid: SteamID,
pub name: String,
pub url: Option<String>,
pub headline: Option<String>,
pub summary: Option<String>,
pub member_count: u32,
pub members_online: u32,
pub members_in_game: u32,
pub avatar_icon: Option<String>,
pub avatar_medium: Option<String>,
pub avatar_full: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupOverviewMember {
pub steamid: SteamID,
pub name: String,
pub avatar_hash: String,
pub custom_url: Option<String>,
pub rank: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupOverview {
pub id: SteamID,
pub name: String,
pub url: Option<String>,
pub headline: Option<String>,
pub summary: Option<String>,
pub avatar_hash: String,
pub member_count: u32,
pub member_detail_count: u32,
pub members_online: u32,
pub members_in_chat: u32,
pub members_in_game: u32,
pub total_pages: i32,
pub current_page: i32,
pub next_page: Option<i32>,
pub next_page_link: Option<String>,
pub members: Vec<GroupOverviewMember>,
pub founded_str: Option<String>,
pub language: Option<String>,
pub location: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupOverviewOptions {
pub group_url: Option<String>,
pub gid: Option<SteamID>,
pub page: i32,
pub search_key: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupAnnouncement {
pub aid: String,
pub headline: String,
pub content: String,
pub author: Option<String>,
pub date: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupEvent {
pub event_id: String,
pub name: String,
pub event_type: String,
pub description: String,
pub appid: Option<u32>,
pub server_ip: Option<String>,
pub start_time: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupComment {
pub comment_id: String,
pub author_name: String,
pub author_id: String,
pub date: String,
pub text: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupHistoryEntry {
pub action_type: String,
pub user: Option<SteamID>,
pub actor: Option<SteamID>,
pub date: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupInfoXml {
pub id: SteamID,
pub name: String,
pub url: String,
pub headline: Option<String>,
pub summary: Option<String>,
pub avatar_hash: String,
pub member_count: u32,
pub member_detail_count: u32,
pub members_in_chat: u32,
pub members_in_game: u32,
pub members_online: u32,
pub total_pages: u32,
pub current_page: u32,
pub starting_member: u32,
pub next_page_link: Option<String>,
pub members: Vec<SteamID>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InvitableGroup {
pub id: SteamID,
pub avatar_hash: Option<String>,
pub avatar_url: Option<String>,
pub name: String,
}