lrzcc_wire/budgeting/
budget_over_tree.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
5pub struct BudgetOverTreeServer {
6 pub total: f64,
7 pub flavors: HashMap<String, f64>,
8}
9
10#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
11pub struct BudgetOverTreeUser {
12 pub cost: f64,
13 pub budget_id: u32,
14 pub budget: u64,
15 pub over: bool,
16 pub servers: HashMap<String, BudgetOverTreeServer>,
17 pub flavors: HashMap<String, f64>,
18}
19
20#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
21pub struct BudgetOverTreeProject {
22 pub cost: f64,
23 pub budget_id: u32,
24 pub budget: u64,
25 pub over: bool,
26 pub users: HashMap<String, BudgetOverTreeUser>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub flavors: Option<HashMap<String, f64>>,
29}
30
31#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
32pub struct BudgetOverTree {
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub cost: Option<f64>,
35 pub projects: HashMap<String, BudgetOverTreeProject>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub flavors: Option<HashMap<String, f64>>,
38}