reduct_base/msg/
server_api.rs1use crate::msg::bucket_api::{BucketInfo, BucketSettings};
5use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7use std::fmt::{Display, Formatter};
8
9#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
12pub struct License {
13 pub licensee: String,
15 pub invoice: String,
17 pub expiry_date: DateTime<Utc>,
19 pub plan: String,
21 pub device_number: u32,
23 pub disk_quota: i32,
25 #[serde(default)]
27 pub fingerprint: String,
28}
29
30impl Display for License {
31 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
32 write!(
33 f,
34 "\n\tLicensee: {}\n\tInvoice: {}\n\tExpiry Date: {}\n\tPlan: {}\n\tNumber of Devices: {}\n\tDisk Quota: {} TB,\n\tFingerprint: {}",
35 self.licensee, self.invoice, self.expiry_date, self.plan, self.device_number, self.disk_quota, self.fingerprint
36 )
37 }
38}
39
40#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq)]
42pub struct ServerInfo {
43 pub version: String,
45 pub bucket_count: u64,
47 pub usage: u64,
49 pub uptime: u64,
51 pub oldest_record: u64,
53 pub latest_record: u64,
55 pub defaults: Defaults,
57 pub license: Option<License>,
59}
60
61#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq)]
63pub struct Defaults {
64 pub bucket: BucketSettings,
65}
66
67#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq)]
69pub struct BucketInfoList {
70 pub buckets: Vec<BucketInfo>,
71}