use crate::healthcare::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DeliveryPatternTimeQualifier {
#[serde(rename = "1st Shift (Normal Working Hours)")]
Variant1stShiftLeftParenthesisNormalWorkingHoursRightParenthesis,
#[serde(rename = "2nd Shift")]
Variant2ndShift,
#[serde(rename = "3rd Shift")]
Variant3rdShift,
#[serde(rename = "A.M.")]
AM,
#[serde(rename = "P.M.")]
PM,
#[serde(rename = "As Directed")]
AsDirected,
#[serde(rename = "Any Shift")]
AnyShift,
#[serde(rename = "None (Also Used to Cancel or Override a Previous Pattern)")]
NoneLeftParenthesisAlsoUsedToCancelOrOverrideAPreviousPatternRightParenthesis,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for DeliveryPatternTimeQualifier {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Variant1stShiftLeftParenthesisNormalWorkingHoursRightParenthesis => write!(f, "1st Shift (Normal Working Hours)"),
Self::Variant2ndShift => write!(f, "2nd Shift"),
Self::Variant3rdShift => write!(f, "3rd Shift"),
Self::AM => write!(f, "A.M."),
Self::PM => write!(f, "P.M."),
Self::AsDirected => write!(f, "As Directed"),
Self::AnyShift => write!(f, "Any Shift"),
Self::NoneLeftParenthesisAlsoUsedToCancelOrOverrideAPreviousPatternRightParenthesis => write!(f, "None (Also Used to Cancel or Override a Previous Pattern)"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for DeliveryPatternTimeQualifier {
fn default() -> DeliveryPatternTimeQualifier {
Self::Variant1stShiftLeftParenthesisNormalWorkingHoursRightParenthesis
}
}