lrzcc_wire/accounting/
server_consumption.rs

1use chrono::{DateTime, FixedOffset};
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5pub type ServerConsumptionFlavors = HashMap<String, f64>;
6
7pub type ServerConsumptionServer = ServerConsumptionFlavors;
8
9#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)]
10pub struct ServerConsumptionUser {
11    pub total: ServerConsumptionFlavors,
12    pub servers: HashMap<String, ServerConsumptionServer>,
13}
14
15#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)]
16pub struct ServerConsumptionProject {
17    pub total: ServerConsumptionFlavors,
18    pub users: HashMap<String, ServerConsumptionUser>,
19}
20
21#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)]
22pub struct ServerConsumptionAll {
23    pub total: ServerConsumptionFlavors,
24    pub projects: HashMap<String, ServerConsumptionProject>,
25}
26
27#[derive(Clone, Debug, Serialize, Deserialize)]
28pub struct ServerConsumptionParams {
29    pub begin: Option<DateTime<FixedOffset>>,
30    pub end: Option<DateTime<FixedOffset>>,
31    pub server: Option<String>,
32    pub user: Option<u32>,
33    pub project: Option<u32>,
34    pub all: Option<bool>,
35    pub detail: Option<bool>,
36}