azisaba_graph/models/
crawl.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Crawl {
17 #[serde(rename = "id")]
19 pub id: uuid::Uuid,
20 #[serde(rename = "address")]
22 pub address: String,
23 #[serde(rename = "port")]
25 pub port: u16,
26 #[serde(rename = "ping")]
28 pub ping: u32,
29 #[serde(rename = "version")]
31 pub version: String,
32 #[serde(rename = "protocolVersion")]
34 pub protocol_version: i32,
35 #[serde(rename = "maxPlayers")]
37 pub max_players: u32,
38 #[serde(rename = "onlinePlayers")]
40 pub online_players: u32,
41 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
43 pub description: Option<String>,
44 #[serde(rename = "favicon", deserialize_with = "Option::deserialize")]
46 pub favicon: Option<String>,
47 #[serde(rename = "crawledAt")]
49 pub crawled_at: chrono::DateTime<chrono::FixedOffset>,
50}
51
52impl Crawl {
53 pub fn new(id: uuid::Uuid, address: String, port: u16, ping: u32, version: String, protocol_version: i32, max_players: u32, online_players: u32, favicon: Option<String>, crawled_at: chrono::DateTime<chrono::FixedOffset>) -> Crawl {
55 Crawl {
56 id,
57 address,
58 port,
59 ping,
60 version,
61 protocol_version,
62 max_players,
63 online_players,
64 description: None,
65 favicon,
66 crawled_at,
67 }
68 }
69}
70