#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(remote = "Self")]
pub struct CustomerPortalSubscription {
pub id: i64,
pub status: CustomerPortalSubscriptionStatus,
pub cancel_at_period_end: bool,
pub current_period_start: Option<String>,
pub current_period_end: Option<String>,
pub trial_ends_at: Option<String>,
pub paused_at: Option<String>,
pub pause_resumes_at: Option<String>,
pub plan: Option<CustomerPortalSubscriptionPlan>,
pub created_at: Option<String>,
pub updated_at: Option<String>,
#[serde(default, flatten)]
pub additional_properties: std::collections::HashMap<String, serde_json::Value>,
}
impl Serialize for CustomerPortalSubscription {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
Self::serialize(self, serializer)
}
}
impl<'de> Deserialize<'de> for CustomerPortalSubscription {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let mut value = serde_json::Value::deserialize(deserializer)?;
crate::runtime_schema::model(&value, "CustomerPortalSubscription", false)
.map_err(serde::de::Error::custom)?;
crate::runtime_schema::retain_model_fields(&mut value, "CustomerPortalSubscription");
Self::deserialize(value).map_err(serde::de::Error::custom)
}
}
impl CustomerPortalSubscription {
pub fn validate_request(&self) -> Result<(), crate::error::Error> {
let value = serde_json::to_value(self)
.map_err(|e| crate::error::Error::Serialization(e.to_string()))?;
crate::runtime_schema::model(&value, "CustomerPortalSubscription", true)
}
}