use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct Program {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "title")]
pub title: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "tag")]
pub tag: String,
#[serde(rename = "icon")]
pub icon: String,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "active")]
pub active: bool,
#[serde(rename = "external")]
pub external: bool,
#[serde(rename = "billingPlanId")]
pub billing_plan_id: String,
}
impl Program {
pub fn id(&self) -> &String {
&self.id
}
pub fn title(&self) -> &String {
&self.title
}
pub fn description(&self) -> &String {
&self.description
}
pub fn tag(&self) -> &String {
&self.tag
}
pub fn icon(&self) -> &String {
&self.icon
}
pub fn url(&self) -> &String {
&self.url
}
pub fn active(&self) -> &bool {
&self.active
}
pub fn external(&self) -> &bool {
&self.external
}
pub fn billing_plan_id(&self) -> &String {
&self.billing_plan_id
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_program_creation() {
let _model = <Program as Default>::default();
let _ = _model.id();
let _ = _model.title();
let _ = _model.description();
let _ = _model.tag();
let _ = _model.icon();
let _ = _model.url();
let _ = _model.active();
let _ = _model.external();
let _ = _model.billing_plan_id();
}
#[test]
fn test_program_serialization() {
let model = <Program as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<Program, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}