osdm_sys/models/
complaint.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
16pub struct Complaint {
17 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "status")]
20 pub status: models::BackOfficeStatus,
21 #[serde(rename = "customerComplaint", skip_serializing_if = "Option::is_none")]
22 pub customer_complaint: Option<Box<models::CustomerComplaint>>,
23 #[serde(rename = "missingInformation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub missing_information: Option<Option<Vec<String>>>,
26 #[serde(rename = "decision", skip_serializing_if = "Option::is_none")]
27 pub decision: Option<Box<models::ComplaintDecision>>,
28 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
30 pub _links: Option<Vec<models::Link>>,
31}
32
33impl Complaint {
34 pub fn new(id: String, status: models::BackOfficeStatus) -> Complaint {
35 Complaint {
36 id,
37 status,
38 customer_complaint: None,
39 missing_information: None,
40 decision: None,
41 _links: None,
42 }
43 }
44}
45