use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ContinuousServiceUsage {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "status")]
pub status: String,
#[serde(rename = "geoPosition", skip_serializing_if = "Option::is_none")]
pub geo_position: Option<Box<models::GeoPosition>>,
#[serde(rename = "startUsageDescription")]
pub start_usage_description: String,
#[serde(rename = "endUsageDescription")]
pub end_usage_description: String,
#[serde(rename = "startUsageCredentials", skip_serializing_if = "Option::is_none")]
pub start_usage_credentials: Option<Box<models::FulfillmentDocument>>,
#[serde(rename = "startUsageTimeLimit", skip_serializing_if = "Option::is_none")]
pub start_usage_time_limit: Option<String>,
#[serde(rename = "blockingFeeRef", skip_serializing_if = "Option::is_none")]
pub blocking_fee_ref: Option<String>,
#[serde(rename = "tipRef", skip_serializing_if = "Option::is_none")]
pub tip_ref: Option<String>,
#[serde(rename = "consumptionForPostPayment", skip_serializing_if = "Option::is_none")]
pub consumption_for_post_payment: Option<Box<models::IndicatedConsumption>>,
#[serde(rename = "remainingConsumptionFromPrePayment", skip_serializing_if = "Option::is_none")]
pub remaining_consumption_from_pre_payment: Option<Box<models::IndicatedConsumption>>,
#[serde(rename = "estimatedTimeOfArrivalAtPickUpPlace", skip_serializing_if = "Option::is_none")]
pub estimated_time_of_arrival_at_pick_up_place: Option<String>,
}
impl ContinuousServiceUsage {
pub fn new(id: String, status: String, start_usage_description: String, end_usage_description: String) -> ContinuousServiceUsage {
ContinuousServiceUsage {
id,
status,
geo_position: None,
start_usage_description,
end_usage_description,
start_usage_credentials: None,
start_usage_time_limit: None,
blocking_fee_ref: None,
tip_ref: None,
consumption_for_post_payment: None,
remaining_consumption_from_pre_payment: None,
estimated_time_of_arrival_at_pick_up_place: None,
}
}
}