azisaba_graph/models/
player.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Player {
17 #[serde(rename = "id")]
19 pub id: uuid::Uuid,
20 #[serde(rename = "discordId", deserialize_with = "Option::deserialize")]
22 pub discord_id: Option<String>,
23 #[serde(rename = "username")]
25 pub username: String,
26 #[serde(rename = "status")]
28 pub status: Status,
29 #[serde(rename = "currentServer", deserialize_with = "Option::deserialize")]
31 pub current_server: Option<String>,
32 #[serde(rename = "bio", deserialize_with = "Option::deserialize")]
34 pub bio: Option<String>,
35}
36
37impl Player {
38 pub fn new(id: uuid::Uuid, discord_id: Option<String>, username: String, status: Status, current_server: Option<String>, bio: Option<String>) -> Player {
40 Player {
41 id,
42 discord_id,
43 username,
44 status,
45 current_server,
46 bio,
47 }
48 }
49}
50#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
52pub enum Status {
53 #[serde(rename = "online")]
54 Online,
55 #[serde(rename = "offline")]
56 Offline,
57}
58
59impl Default for Status {
60 fn default() -> Status {
61 Self::Online
62 }
63}
64