use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceJob {
#[serde(rename = "createTime", skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
#[serde(rename = "serviceJobId", skip_serializing_if = "Option::is_none")]
pub service_job_id: Option<String>,
#[serde(rename = "serviceJobStatus", skip_serializing_if = "Option::is_none")]
pub service_job_status: Option<ServiceJobStatus>,
#[serde(rename = "scopeOfWork", skip_serializing_if = "Option::is_none")]
pub scope_of_work: Option<Box<models::services::ScopeOfWork>>,
#[serde(rename = "seller", skip_serializing_if = "Option::is_none")]
pub seller: Option<Box<models::services::Seller>>,
#[serde(rename = "serviceJobProvider", skip_serializing_if = "Option::is_none")]
pub service_job_provider: Option<Box<models::services::ServiceJobProvider>>,
#[serde(rename = "preferredAppointmentTimes", skip_serializing_if = "Option::is_none")]
pub preferred_appointment_times: Option<Vec<models::services::AppointmentTime>>,
#[serde(rename = "appointments", skip_serializing_if = "Option::is_none")]
pub appointments: Option<Vec<models::services::Appointment>>,
#[serde(rename = "serviceOrderId", skip_serializing_if = "Option::is_none")]
pub service_order_id: Option<String>,
#[serde(rename = "marketplaceId", skip_serializing_if = "Option::is_none")]
pub marketplace_id: Option<String>,
#[serde(rename = "storeId", skip_serializing_if = "Option::is_none")]
pub store_id: Option<String>,
#[serde(rename = "buyer", skip_serializing_if = "Option::is_none")]
pub buyer: Option<Box<models::services::Buyer>>,
#[serde(rename = "associatedItems", skip_serializing_if = "Option::is_none")]
pub associated_items: Option<Vec<models::services::AssociatedItem>>,
#[serde(rename = "serviceLocation", skip_serializing_if = "Option::is_none")]
pub service_location: Option<Box<models::services::ServiceLocation>>,
}
impl ServiceJob {
pub fn new() -> ServiceJob {
ServiceJob {
create_time: None,
service_job_id: None,
service_job_status: None,
scope_of_work: None,
seller: None,
service_job_provider: None,
preferred_appointment_times: None,
appointments: None,
service_order_id: None,
marketplace_id: None,
store_id: None,
buyer: None,
associated_items: None,
service_location: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ServiceJobStatus {
#[serde(rename = "NOT_SERVICED")]
NotServiced,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "COMPLETED")]
Completed,
#[serde(rename = "PENDING_SCHEDULE")]
PendingSchedule,
#[serde(rename = "NOT_FULFILLABLE")]
NotFulfillable,
#[serde(rename = "HOLD")]
Hold,
#[serde(rename = "PAYMENT_DECLINED")]
PaymentDeclined,
}
impl Default for ServiceJobStatus {
fn default() -> ServiceJobStatus {
Self::NotServiced
}
}