use serde::{Deserialize, Serialize};
use crate::models::general::{
LocalDateTime,
};
#[derive(Serialize, Default, Debug)]
#[serde(rename_all = "snake_case")]
pub struct CreateQuoteRequest {
pub pickup_address: String,
pub dropoff_address: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub dropoff_latitude: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dropoff_longitude: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dropoff_phone_number: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pickup_latitude: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pickup_longitude: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pickup_phone_number: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pickup_ready_dt: Option<LocalDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pickup_deadline_dt: Option<LocalDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dropoff_ready_dt: Option<LocalDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dropoff_deadline_dt: Option<LocalDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub manifest_total_value: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_store_id: Option<String>,
}
impl CreateQuoteRequest {
pub fn new(
pickup_address: String,
dropoff_address: String) -> Self {
CreateQuoteRequest {
pickup_address: pickup_address,
dropoff_address: dropoff_address,
..Default::default()
}
}
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "snake_case")]
pub struct CreateQuoteResponse {
pub created: Option<LocalDateTime>,
pub currency: Option<String>,
pub currency_type: Option<String>,
pub dropoff_deadline: Option<LocalDateTime>,
pub dropoff_eta: Option<LocalDateTime>,
pub duration: Option<i64>,
pub expires: Option<LocalDateTime>,
pub fee: Option<i64>,
pub id: Option<String>,
pub kind: Option<String>,
pub pickup_duration: Option<i64>,
pub external_store_id: Option<String>,
}