use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct Complaint {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "status")]
pub status: models::BackOfficeStatus,
#[serde(rename = "customerComplaint", skip_serializing_if = "Option::is_none")]
pub customer_complaint: Option<Box<models::CustomerComplaint>>,
#[serde(rename = "missingInformation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub missing_information: Option<Option<Vec<String>>>,
#[serde(rename = "decision", skip_serializing_if = "Option::is_none")]
pub decision: Option<Box<models::ComplaintDecision>>,
#[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
pub _links: Option<Vec<models::Link>>,
}
impl Complaint {
pub fn new(id: String, status: models::BackOfficeStatus) -> Complaint {
Complaint {
id,
status,
customer_complaint: None,
missing_information: None,
decision: None,
_links: None,
}
}
}