use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum HistoryStatus {
#[serde(rename = "PREBOOKED")]
Prebooked,
#[serde(rename = "ON_HOLD")]
OnHold,
#[serde(rename = "CONFIRMED")]
Confirmed,
#[serde(rename = "FULFILLED")]
Fulfilled,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "RELEASED")]
Released,
#[serde(rename = "REFUNDED")]
Refunded,
#[serde(rename = "EXCHANGED")]
Exchanged,
#[serde(rename = "EXCHANGE_ONGOING")]
ExchangeOngoing,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "AVAILABLE")]
Available,
#[serde(rename = "CHECKED_IN")]
CheckedIn,
}
impl std::fmt::Display for HistoryStatus {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Prebooked => write!(f, "PREBOOKED"),
Self::OnHold => write!(f, "ON_HOLD"),
Self::Confirmed => write!(f, "CONFIRMED"),
Self::Fulfilled => write!(f, "FULFILLED"),
Self::Cancelled => write!(f, "CANCELLED"),
Self::Released => write!(f, "RELEASED"),
Self::Refunded => write!(f, "REFUNDED"),
Self::Exchanged => write!(f, "EXCHANGED"),
Self::ExchangeOngoing => write!(f, "EXCHANGE_ONGOING"),
Self::Error => write!(f, "ERROR"),
Self::Available => write!(f, "AVAILABLE"),
Self::CheckedIn => write!(f, "CHECKED_IN"),
}
}
}
impl Default for HistoryStatus {
fn default() -> HistoryStatus {
Self::Prebooked
}
}