use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct Organization {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "$createdAt")]
pub created_at: String,
#[serde(rename = "$updatedAt")]
pub updated_at: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "total")]
pub total: i64,
#[serde(rename = "prefs")]
pub prefs: crate::models::Preferences,
#[serde(rename = "billingBudget")]
pub billing_budget: i64,
#[serde(rename = "budgetAlerts")]
pub budget_alerts: Vec<i64>,
#[serde(rename = "billingPlan")]
pub billing_plan: String,
#[serde(rename = "billingPlanId")]
pub billing_plan_id: String,
#[serde(rename = "billingPlanDetails")]
pub billing_plan_details: crate::models::BillingPlan,
#[serde(rename = "billingEmail")]
pub billing_email: String,
#[serde(rename = "billingStartDate")]
pub billing_start_date: String,
#[serde(rename = "billingCurrentInvoiceDate")]
pub billing_current_invoice_date: String,
#[serde(rename = "billingNextInvoiceDate")]
pub billing_next_invoice_date: String,
#[serde(rename = "billingTrialStartDate")]
pub billing_trial_start_date: String,
#[serde(rename = "billingTrialDays")]
pub billing_trial_days: i64,
#[serde(rename = "billingAggregationId")]
pub billing_aggregation_id: String,
#[serde(rename = "billingInvoiceId")]
pub billing_invoice_id: String,
#[serde(rename = "paymentMethodId")]
pub payment_method_id: String,
#[serde(rename = "billingAddressId")]
pub billing_address_id: String,
#[serde(rename = "backupPaymentMethodId")]
pub backup_payment_method_id: String,
#[serde(rename = "status")]
pub status: String,
#[serde(rename = "remarks")]
pub remarks: String,
#[serde(rename = "agreementBAA")]
pub agreement_baa: String,
#[serde(rename = "programManagerName")]
pub program_manager_name: String,
#[serde(rename = "programManagerCalendar")]
pub program_manager_calendar: String,
#[serde(rename = "programDiscordChannelName")]
pub program_discord_channel_name: String,
#[serde(rename = "programDiscordChannelUrl")]
pub program_discord_channel_url: String,
#[serde(rename = "billingLimits")]
#[serde(skip_serializing_if = "Option::is_none")]
pub billing_limits: Option<crate::models::BillingLimits>,
#[serde(rename = "billingPlanDowngrade")]
pub billing_plan_downgrade: String,
#[serde(rename = "billingTaxId")]
pub billing_tax_id: String,
#[serde(rename = "markedForDeletion")]
pub marked_for_deletion: bool,
#[serde(rename = "platform")]
pub platform: String,
#[serde(rename = "projects")]
pub projects: Vec<String>,
}
impl Organization {
pub fn id(&self) -> &String {
&self.id
}
pub fn created_at(&self) -> &String {
&self.created_at
}
pub fn updated_at(&self) -> &String {
&self.updated_at
}
pub fn name(&self) -> &String {
&self.name
}
pub fn total(&self) -> &i64 {
&self.total
}
pub fn prefs(&self) -> &crate::models::Preferences {
&self.prefs
}
pub fn billing_budget(&self) -> &i64 {
&self.billing_budget
}
pub fn budget_alerts(&self) -> &Vec<i64> {
&self.budget_alerts
}
pub fn billing_plan(&self) -> &String {
&self.billing_plan
}
pub fn billing_plan_id(&self) -> &String {
&self.billing_plan_id
}
pub fn billing_plan_details(&self) -> &crate::models::BillingPlan {
&self.billing_plan_details
}
pub fn billing_email(&self) -> &String {
&self.billing_email
}
pub fn billing_start_date(&self) -> &String {
&self.billing_start_date
}
pub fn billing_current_invoice_date(&self) -> &String {
&self.billing_current_invoice_date
}
pub fn billing_next_invoice_date(&self) -> &String {
&self.billing_next_invoice_date
}
pub fn billing_trial_start_date(&self) -> &String {
&self.billing_trial_start_date
}
pub fn billing_trial_days(&self) -> &i64 {
&self.billing_trial_days
}
pub fn billing_aggregation_id(&self) -> &String {
&self.billing_aggregation_id
}
pub fn billing_invoice_id(&self) -> &String {
&self.billing_invoice_id
}
pub fn payment_method_id(&self) -> &String {
&self.payment_method_id
}
pub fn billing_address_id(&self) -> &String {
&self.billing_address_id
}
pub fn backup_payment_method_id(&self) -> &String {
&self.backup_payment_method_id
}
pub fn status(&self) -> &String {
&self.status
}
pub fn remarks(&self) -> &String {
&self.remarks
}
pub fn agreement_baa(&self) -> &String {
&self.agreement_baa
}
pub fn program_manager_name(&self) -> &String {
&self.program_manager_name
}
pub fn program_manager_calendar(&self) -> &String {
&self.program_manager_calendar
}
pub fn program_discord_channel_name(&self) -> &String {
&self.program_discord_channel_name
}
pub fn program_discord_channel_url(&self) -> &String {
&self.program_discord_channel_url
}
pub fn set_billing_limits(mut self, billing_limits: crate::models::BillingLimits) -> Self {
self.billing_limits = Some(billing_limits);
self
}
pub fn billing_limits(&self) -> Option<&crate::models::BillingLimits> {
self.billing_limits.as_ref()
}
pub fn billing_plan_downgrade(&self) -> &String {
&self.billing_plan_downgrade
}
pub fn billing_tax_id(&self) -> &String {
&self.billing_tax_id
}
pub fn marked_for_deletion(&self) -> &bool {
&self.marked_for_deletion
}
pub fn platform(&self) -> &String {
&self.platform
}
pub fn projects(&self) -> &Vec<String> {
&self.projects
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_organization_creation() {
let _model = <Organization as Default>::default();
let _ = _model.id();
let _ = _model.created_at();
let _ = _model.updated_at();
let _ = _model.name();
let _ = _model.total();
let _ = _model.prefs();
let _ = _model.billing_budget();
let _ = _model.budget_alerts();
let _ = _model.billing_plan();
let _ = _model.billing_plan_id();
let _ = _model.billing_plan_details();
let _ = _model.billing_email();
let _ = _model.billing_start_date();
let _ = _model.billing_current_invoice_date();
let _ = _model.billing_next_invoice_date();
let _ = _model.billing_trial_start_date();
let _ = _model.billing_trial_days();
let _ = _model.billing_aggregation_id();
let _ = _model.billing_invoice_id();
let _ = _model.payment_method_id();
let _ = _model.billing_address_id();
let _ = _model.backup_payment_method_id();
let _ = _model.status();
let _ = _model.remarks();
let _ = _model.agreement_baa();
let _ = _model.program_manager_name();
let _ = _model.program_manager_calendar();
let _ = _model.program_discord_channel_name();
let _ = _model.program_discord_channel_url();
let _ = _model.billing_plan_downgrade();
let _ = _model.billing_tax_id();
let _ = _model.marked_for_deletion();
let _ = _model.platform();
let _ = _model.projects();
}
#[test]
fn test_organization_serialization() {
let model = <Organization as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<Organization, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}