#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct TimeTrackingConfiguration {
#[serde(rename = "workingHoursPerDay")]
pub working_hours_per_day: f64,
#[serde(rename = "workingDaysPerWeek")]
pub working_days_per_week: f64,
#[serde(rename = "timeFormat")]
pub time_format: TimeFormat,
#[serde(rename = "defaultUnit")]
pub default_unit: DefaultUnit,
}
impl TimeTrackingConfiguration {
pub fn new(working_hours_per_day: f64, working_days_per_week: f64, time_format: TimeFormat, default_unit: DefaultUnit) -> TimeTrackingConfiguration {
TimeTrackingConfiguration {
working_hours_per_day,
working_days_per_week,
time_format,
default_unit,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TimeFormat {
#[serde(rename = "pretty")]
Pretty,
#[serde(rename = "days")]
Days,
#[serde(rename = "hours")]
Hours,
}
impl Default for TimeFormat {
fn default() -> TimeFormat {
Self::Pretty
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DefaultUnit {
#[serde(rename = "minute")]
Minute,
#[serde(rename = "hour")]
Hour,
#[serde(rename = "day")]
Day,
#[serde(rename = "week")]
Week,
}
impl Default for DefaultUnit {
fn default() -> DefaultUnit {
Self::Minute
}
}