use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateSchedulingRequest {
#[serde(rename = "dependencies", skip_serializing_if = "Option::is_none")]
pub dependencies: Option<Dependencies>,
#[serde(rename = "endDate", skip_serializing_if = "Option::is_none")]
pub end_date: Option<Box<models::CreateDateFieldRequest>>,
#[serde(rename = "estimation")]
pub estimation: Estimation,
#[serde(rename = "inferredDates", skip_serializing_if = "Option::is_none")]
pub inferred_dates: Option<InferredDates>,
#[serde(rename = "startDate", skip_serializing_if = "Option::is_none")]
pub start_date: Option<Box<models::CreateDateFieldRequest>>,
}
impl CreateSchedulingRequest {
pub fn new(estimation: Estimation) -> CreateSchedulingRequest {
CreateSchedulingRequest {
dependencies: None,
end_date: None,
estimation,
inferred_dates: None,
start_date: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Dependencies {
#[serde(rename = "Sequential")]
Sequential,
#[serde(rename = "Concurrent")]
Concurrent,
}
impl Default for Dependencies {
fn default() -> Dependencies {
Self::Sequential
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Estimation {
#[serde(rename = "StoryPoints")]
StoryPoints,
#[serde(rename = "Days")]
Days,
#[serde(rename = "Hours")]
Hours,
}
impl Default for Estimation {
fn default() -> Estimation {
Self::StoryPoints
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum InferredDates {
#[serde(rename = "None")]
None,
#[serde(rename = "SprintDates")]
SprintDates,
#[serde(rename = "ReleaseDates")]
ReleaseDates,
}
impl Default for InferredDates {
fn default() -> InferredDates {
Self::None
}
}