use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DashboardGadget {
#[serde(rename = "color")]
pub color: Color,
#[serde(rename = "id")]
pub id: i64,
#[serde(rename = "moduleKey", skip_serializing_if = "Option::is_none")]
pub module_key: Option<String>,
#[serde(rename = "position")]
pub position: Box<models::DashboardGadgetPosition>,
#[serde(rename = "title")]
pub title: String,
#[serde(rename = "uri", skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
impl DashboardGadget {
pub fn new(color: Color, id: i64, position: models::DashboardGadgetPosition, title: String) -> DashboardGadget {
DashboardGadget {
color,
id,
module_key: None,
position: Box::new(position),
title,
uri: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Color {
#[serde(rename = "blue")]
Blue,
#[serde(rename = "red")]
Red,
#[serde(rename = "yellow")]
Yellow,
#[serde(rename = "green")]
Green,
#[serde(rename = "cyan")]
Cyan,
#[serde(rename = "purple")]
Purple,
#[serde(rename = "gray")]
Gray,
#[serde(rename = "white")]
White,
}
impl Default for Color {
fn default() -> Color {
Self::Blue
}
}