use crate::payers::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Program {
#[serde(rename = "AUTOMOBILE_MEDICAL")]
AutomobileMedical,
#[serde(rename = "COMMERCIAL")]
Commercial,
#[serde(rename = "DISABILITY")]
Disability,
#[serde(rename = "LIABILITY_MEDICAL")]
LiabilityMedical,
#[serde(rename = "MEDICAID")]
Medicaid,
#[serde(rename = "MEDICARE")]
Medicare,
#[serde(rename = "MEDICARE_ADVANTAGE")]
MedicareAdvantage,
#[serde(rename = "TITLE_V")]
TitleV,
#[serde(rename = "TRICARE")]
Tricare,
#[serde(rename = "VETERANS_AFFAIRS")]
VeteransAffairs,
#[serde(rename = "WORKERS_COMPENSATION")]
WorkersCompensation,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for Program {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::AutomobileMedical => write!(f, "AUTOMOBILE_MEDICAL"),
Self::Commercial => write!(f, "COMMERCIAL"),
Self::Disability => write!(f, "DISABILITY"),
Self::LiabilityMedical => write!(f, "LIABILITY_MEDICAL"),
Self::Medicaid => write!(f, "MEDICAID"),
Self::Medicare => write!(f, "MEDICARE"),
Self::MedicareAdvantage => write!(f, "MEDICARE_ADVANTAGE"),
Self::TitleV => write!(f, "TITLE_V"),
Self::Tricare => write!(f, "TRICARE"),
Self::VeteransAffairs => write!(f, "VETERANS_AFFAIRS"),
Self::WorkersCompensation => write!(f, "WORKERS_COMPENSATION"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for Program {
fn default() -> Program {
Self::AutomobileMedical
}
}