use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateWorkRequestDetails {
pub status: OperationStatus,
#[serde(skip_serializing_if = "Option::is_none")]
pub percent_complete: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_finished: Option<DateTime<Utc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
}
pub struct UpdateWorkRequestDetailsRequired {
pub status: OperationStatus,
}
impl UpdateWorkRequestDetails {
pub fn new(required: UpdateWorkRequestDetailsRequired) -> Self {
Self {
status: required.status,
percent_complete: None,
time_finished: None,
description: None,
display_name: None,
}
}
pub fn set_status(mut self, value: OperationStatus) -> Self {
self.status = value;
self
}
pub fn set_percent_complete(mut self, value: Option<i64>) -> Self {
self.percent_complete = value;
self
}
pub fn set_time_finished(mut self, value: Option<DateTime<Utc>>) -> Self {
self.time_finished = value;
self
}
pub fn set_description(mut self, value: Option<String>) -> Self {
self.description = value;
self
}
pub fn set_display_name(mut self, value: Option<String>) -> Self {
self.display_name = value;
self
}
pub fn with_percent_complete(mut self, value: i64) -> Self {
self.percent_complete = Some(value);
self
}
pub fn with_time_finished(mut self, value: DateTime<Utc>) -> Self {
self.time_finished = Some(value);
self
}
pub fn with_description(mut self, value: impl Into<String>) -> Self {
self.description = Some(value.into());
self
}
pub fn with_display_name(mut self, value: impl Into<String>) -> Self {
self.display_name = Some(value.into());
self
}
}