1use serde::{Deserialize, Serialize};
4use steamid::SteamID;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct GroupInfo {
9 pub steamid: SteamID,
11 pub name: String,
13 pub url: Option<String>,
15 pub headline: Option<String>,
17 pub summary: Option<String>,
19 pub member_count: u32,
21 pub members_online: u32,
23 pub members_in_game: u32,
25 pub avatar_icon: Option<String>,
27 pub avatar_medium: Option<String>,
29 pub avatar_full: Option<String>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct GroupOverviewMember {
36 pub steamid: SteamID,
37 pub name: String,
38 pub avatar_hash: String,
39 pub custom_url: Option<String>,
40 pub rank: Option<String>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
45pub struct GroupOverview {
46 pub id: SteamID,
47 pub name: String,
48 pub url: Option<String>,
49 pub headline: Option<String>,
50 pub summary: Option<String>,
51 pub avatar_hash: String,
52 pub member_count: u32,
53 pub member_detail_count: u32,
54 pub members_online: u32,
55 pub members_in_chat: u32,
56 pub members_in_game: u32,
57 pub total_pages: i32,
58 pub current_page: i32,
59 pub next_page: Option<i32>,
60 pub next_page_link: Option<String>,
61 pub members: Vec<GroupOverviewMember>,
62 pub founded_str: Option<String>,
63 pub language: Option<String>,
64 pub location: Option<String>,
65}
66
67#[derive(Debug, Clone, Default, Serialize, Deserialize)]
69pub struct GroupOverviewOptions {
70 pub group_url: Option<String>,
71 pub gid: Option<SteamID>,
72 pub page: i32,
73 pub search_key: Option<String>,
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
78pub struct GroupAnnouncement {
79 pub aid: String,
81 pub headline: String,
83 pub content: String,
85 pub author: Option<String>,
87 pub date: String,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93pub struct GroupEvent {
94 pub event_id: String,
96 pub name: String,
98 pub event_type: String,
100 pub description: String,
102 pub appid: Option<u32>,
104 pub server_ip: Option<String>,
106 pub start_time: Option<String>,
108}
109
110#[derive(Debug, Clone, Serialize, Deserialize)]
112pub struct GroupComment {
113 pub comment_id: String,
115 pub author_name: String,
117 pub author_id: String,
119 pub date: String,
121 pub text: String,
123}
124
125#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct GroupHistoryEntry {
128 pub action_type: String,
130 pub user: Option<SteamID>,
132 pub actor: Option<SteamID>,
134 pub date: String,
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize)]
140pub struct GroupInfoXml {
141 pub id: SteamID,
143 pub name: String,
145 pub url: String,
147 pub headline: Option<String>,
149 pub summary: Option<String>,
151 pub avatar_hash: String,
153 pub member_count: u32,
155 pub member_detail_count: u32,
157 pub members_in_chat: u32,
159 pub members_in_game: u32,
161 pub members_online: u32,
163 pub total_pages: u32,
165 pub current_page: u32,
167 pub starting_member: u32,
169 pub next_page_link: Option<String>,
171 pub members: Vec<SteamID>,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
177pub struct InvitableGroup {
178 pub id: SteamID,
180 pub avatar_hash: Option<String>,
182 pub avatar_url: Option<String>,
184 pub name: String,
186}