use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Appointment {
#[serde(rename = "appointmentId", skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<String>,
#[serde(rename = "appointmentStatus", skip_serializing_if = "Option::is_none")]
pub appointment_status: Option<AppointmentStatus>,
#[serde(rename = "appointmentTime", skip_serializing_if = "Option::is_none")]
pub appointment_time: Option<Box<models::services::AppointmentTime>>,
#[serde(rename = "assignedTechnicians", skip_serializing_if = "Option::is_none")]
pub assigned_technicians: Option<Vec<models::services::Technician>>,
#[serde(rename = "rescheduledAppointmentId", skip_serializing_if = "Option::is_none")]
pub rescheduled_appointment_id: Option<String>,
#[serde(rename = "poa", skip_serializing_if = "Option::is_none")]
pub poa: Option<Box<models::services::Poa>>,
}
impl Appointment {
pub fn new() -> Appointment {
Appointment {
appointment_id: None,
appointment_status: None,
appointment_time: None,
assigned_technicians: None,
rescheduled_appointment_id: None,
poa: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AppointmentStatus {
#[serde(rename = "ACTIVE")]
Active,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "COMPLETED")]
Completed,
}
impl Default for AppointmentStatus {
fn default() -> AppointmentStatus {
Self::Active
}
}