use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PackageStatus {
#[serde(rename = "ReadyForPickup")]
ReadyForPickup,
#[serde(rename = "PickedUp")]
PickedUp,
#[serde(rename = "AtOriginFC")]
AtOriginFc,
#[serde(rename = "AtDestinationFC")]
AtDestinationFc,
#[serde(rename = "Delivered")]
Delivered,
#[serde(rename = "Rejected")]
Rejected,
#[serde(rename = "Undeliverable")]
Undeliverable,
#[serde(rename = "ReturnedToSeller")]
ReturnedToSeller,
#[serde(rename = "LostInTransit")]
LostInTransit,
#[serde(rename = "LabelCanceled")]
LabelCanceled,
#[serde(rename = "DamagedInTransit")]
DamagedInTransit,
#[serde(rename = "OutForDelivery")]
OutForDelivery,
}
impl std::fmt::Display for PackageStatus {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ReadyForPickup => write!(f, "ReadyForPickup"),
Self::PickedUp => write!(f, "PickedUp"),
Self::AtOriginFc => write!(f, "AtOriginFC"),
Self::AtDestinationFc => write!(f, "AtDestinationFC"),
Self::Delivered => write!(f, "Delivered"),
Self::Rejected => write!(f, "Rejected"),
Self::Undeliverable => write!(f, "Undeliverable"),
Self::ReturnedToSeller => write!(f, "ReturnedToSeller"),
Self::LostInTransit => write!(f, "LostInTransit"),
Self::LabelCanceled => write!(f, "LabelCanceled"),
Self::DamagedInTransit => write!(f, "DamagedInTransit"),
Self::OutForDelivery => write!(f, "OutForDelivery"),
}
}
}
impl Default for PackageStatus {
fn default() -> PackageStatus {
Self::ReadyForPickup
}
}