use crate::Time;
use crate::serde_help::*;
use builder_pattern::Builder;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, Builder)]
#[serde(rename_all = "camelCase")]
pub struct GetSubscriptionRequest {
#[into]
pub check_card_active: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CustomerSubscriptionResponseData {
pub status: SubscriptionStatus,
pub subscription_plan_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(with = "option_iso8601")]
pub cancelled_at: Option<Time>,
pub customer_subscription_id: String,
pub is_card_active: bool,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(with = "option_iso8601")]
pub next_write_off: Option<Time>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SubscriptionStatus {
New,
Active,
Cancelled,
Expired,
}