osdm_sys/models/
fulfillment.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Fulfillment {
17 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "status")]
20 pub status: models::FulfillmentStatus,
21 #[serde(rename = "bookingRef")]
23 pub booking_ref: String,
24 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26 pub summary: Option<Option<String>>,
27 #[serde(rename = "createdOn")]
28 pub created_on: String,
29 #[serde(rename = "controlNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub control_number: Option<Option<String>>,
32 #[serde(rename = "bookingParts", skip_serializing_if = "Option::is_none")]
34 pub booking_parts: Option<Vec<models::BookingPartReference>>,
35 #[serde(rename = "availableUsage", skip_serializing_if = "Option::is_none")]
36 pub available_usage: Option<Box<models::FulfillmentUsage>>,
37 #[serde(rename = "issuer", skip_serializing_if = "Option::is_none")]
39 pub issuer: Option<String>,
40 #[serde(rename = "fulfillmentDocuments", skip_serializing_if = "Option::is_none")]
42 pub fulfillment_documents: Option<Vec<models::FulfillmentDocument>>,
43 #[serde(rename = "issuingLanguage", skip_serializing_if = "Option::is_none")]
45 pub issuing_language: Option<String>,
46 #[serde(rename = "fulfillmentParts", skip_serializing_if = "Option::is_none")]
48 pub fulfillment_parts: Option<Vec<models::FulfillmentPart>>,
49 #[serde(rename = "contentComplete", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
51 pub content_complete: Option<Option<bool>>,
52 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
53 pub trip_coverage: Option<Box<models::TripCoverage>>,
54 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
55 pub inbound_trip_coverage: Option<Box<models::TripCoverage>>,
56 #[serde(rename = "continuousServiceUsage", skip_serializing_if = "Option::is_none")]
57 pub continuous_service_usage: Option<Box<models::ContinuousServiceUsage>>,
58 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
60 pub _links: Option<Vec<models::Link>>,
61}
62
63impl Fulfillment {
64 pub fn new(id: String, status: models::FulfillmentStatus, booking_ref: String, created_on: String) -> Fulfillment {
66 Fulfillment {
67 id,
68 status,
69 booking_ref,
70 summary: None,
71 created_on,
72 control_number: None,
73 booking_parts: None,
74 available_usage: None,
75 issuer: None,
76 fulfillment_documents: None,
77 issuing_language: None,
78 fulfillment_parts: None,
79 content_complete: None,
80 trip_coverage: None,
81 inbound_trip_coverage: None,
82 continuous_service_usage: None,
83 _links: None,
84 }
85 }
86}
87