use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DetailCodes {
#[serde(rename = "BusinessClosed")]
BusinessClosed,
#[serde(rename = "CustomerUnavailable")]
CustomerUnavailable,
#[serde(rename = "PaymentNotReady")]
PaymentNotReady,
#[serde(rename = "OtpNotAvailable")]
OtpNotAvailable,
#[serde(rename = "DeliveryAttempted")]
DeliveryAttempted,
#[serde(rename = "UnableToAccess")]
UnableToAccess,
#[serde(rename = "UnableToContactRecipient")]
UnableToContactRecipient,
#[serde(rename = "DeliveredToBehindWheelieBin")]
DeliveredToBehindWheelieBin,
#[serde(rename = "DeliveredToPorch")]
DeliveredToPorch,
#[serde(rename = "DeliveredToGarage")]
DeliveredToGarage,
#[serde(rename = "DeliveredToGarden")]
DeliveredToGarden,
#[serde(rename = "DeliveredToGreenhouse")]
DeliveredToGreenhouse,
#[serde(rename = "DeliveredToMailSlot")]
DeliveredToMailSlot,
#[serde(rename = "DeliveredToMailRoom")]
DeliveredToMailRoom,
#[serde(rename = "DeliveredToNeighbor")]
DeliveredToNeighbor,
#[serde(rename = "DeliveredToRearDoor")]
DeliveredToRearDoor,
#[serde(rename = "DeliveredToReceptionist")]
DeliveredToReceptionist,
#[serde(rename = "DeliveredToShed")]
DeliveredToShed,
#[serde(rename = "DeliveredWithOTP")]
DeliveredWithOtp,
#[serde(rename = "Signed")]
Signed,
#[serde(rename = "Damaged")]
Damaged,
#[serde(rename = "IncorrectItems")]
IncorrectItems,
#[serde(rename = "NotRequired")]
NotRequired,
#[serde(rename = "Rejected")]
Rejected,
#[serde(rename = "RejectedByRecipientWithVerification")]
RejectedByRecipientWithVerification,
#[serde(rename = "CancelledByRecipient")]
CancelledByRecipient,
#[serde(rename = "AddressNotFound")]
AddressNotFound,
#[serde(rename = "HazmatShipment")]
HazmatShipment,
#[serde(rename = "Undeliverable")]
Undeliverable,
#[serde(rename = "ArrivedAtLocalFacility")]
ArrivedAtLocalFacility,
}
impl std::fmt::Display for DetailCodes {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::BusinessClosed => write!(f, "BusinessClosed"),
Self::CustomerUnavailable => write!(f, "CustomerUnavailable"),
Self::PaymentNotReady => write!(f, "PaymentNotReady"),
Self::OtpNotAvailable => write!(f, "OtpNotAvailable"),
Self::DeliveryAttempted => write!(f, "DeliveryAttempted"),
Self::UnableToAccess => write!(f, "UnableToAccess"),
Self::UnableToContactRecipient => write!(f, "UnableToContactRecipient"),
Self::DeliveredToBehindWheelieBin => write!(f, "DeliveredToBehindWheelieBin"),
Self::DeliveredToPorch => write!(f, "DeliveredToPorch"),
Self::DeliveredToGarage => write!(f, "DeliveredToGarage"),
Self::DeliveredToGarden => write!(f, "DeliveredToGarden"),
Self::DeliveredToGreenhouse => write!(f, "DeliveredToGreenhouse"),
Self::DeliveredToMailSlot => write!(f, "DeliveredToMailSlot"),
Self::DeliveredToMailRoom => write!(f, "DeliveredToMailRoom"),
Self::DeliveredToNeighbor => write!(f, "DeliveredToNeighbor"),
Self::DeliveredToRearDoor => write!(f, "DeliveredToRearDoor"),
Self::DeliveredToReceptionist => write!(f, "DeliveredToReceptionist"),
Self::DeliveredToShed => write!(f, "DeliveredToShed"),
Self::DeliveredWithOtp => write!(f, "DeliveredWithOTP"),
Self::Signed => write!(f, "Signed"),
Self::Damaged => write!(f, "Damaged"),
Self::IncorrectItems => write!(f, "IncorrectItems"),
Self::NotRequired => write!(f, "NotRequired"),
Self::Rejected => write!(f, "Rejected"),
Self::RejectedByRecipientWithVerification => write!(f, "RejectedByRecipientWithVerification"),
Self::CancelledByRecipient => write!(f, "CancelledByRecipient"),
Self::AddressNotFound => write!(f, "AddressNotFound"),
Self::HazmatShipment => write!(f, "HazmatShipment"),
Self::Undeliverable => write!(f, "Undeliverable"),
Self::ArrivedAtLocalFacility => write!(f, "ArrivedAtLocalFacility"),
}
}
}
impl Default for DetailCodes {
fn default() -> DetailCodes {
Self::BusinessClosed
}
}