use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct FriendsListResponse {
pub data: Vec<FriendUserInformation>,
}
#[allow(missing_docs)]
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FriendUserInformation {
pub id: u64,
pub name: String,
pub display_name: String,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(super) struct PendingFriendRequestsResponse {
pub count: u64,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct RequestResponseData {
#[serde(rename = "friendRequest")]
pub request_info: RequestInfo,
pub mutual_friends_list: Vec<String>,
pub id: u64,
pub name: String,
pub display_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct RequestInfo {
pub sent_at: String,
pub sender_id: u64,
pub source_universe_id: u64,
pub origin_source_type: OriginSource,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum OriginSource {
#[serde(rename = "Unknown")]
Unknown = 0,
#[serde(rename = "PlayerSearch")]
PlayerSearch = 1,
#[serde(rename = "QrCode")]
QrCode = 2,
#[serde(rename = "InGame")]
InGame = 3,
#[serde(rename = "UserProfile")]
UserProfile = 4,
#[serde(rename = "QqContactImporter")]
QqContactImporter = 5,
#[serde(rename = "WeChatContactImporter")]
WeChatContactImporter = 6,
#[serde(rename = "ProfileShare")]
ProfileShare = 7,
#[serde(rename = "PhoneContactImporter")]
PhoneContactImporter = 8,
#[serde(rename = "FriendRecommendations")]
FriendRecommendations = 9,
}
impl Default for OriginSource {
fn default() -> Self {
OriginSource::Unknown
}
}
impl From<u8> for OriginSource {
fn from(value: u8) -> Self {
match value {
1 => OriginSource::PlayerSearch,
2 => OriginSource::QrCode,
3 => OriginSource::InGame,
4 => OriginSource::UserProfile,
5 => OriginSource::QqContactImporter,
6 => OriginSource::WeChatContactImporter,
7 => OriginSource::ProfileShare,
8 => OriginSource::PhoneContactImporter,
9 => OriginSource::FriendRecommendations,
_ => OriginSource::Unknown,
}
}
}