use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LicenseKey {
#[serde(rename = "activations_limit", skip_serializing_if = "Option::is_none")]
pub activations_limit: Option<i32>,
#[serde(rename = "business_id")]
pub business_id: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "customer_id")]
pub customer_id: String,
#[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "instances_count")]
pub instances_count: i32,
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "payment_id")]
pub payment_id: String,
#[serde(rename = "product_id")]
pub product_id: String,
#[serde(rename = "status")]
pub status: models::LicenseKeyStatus,
#[serde(rename = "subscription_id", skip_serializing_if = "Option::is_none")]
pub subscription_id: Option<String>,
#[serde(rename = "payload_type")]
pub payload_type: PayloadType,
}
impl LicenseKey {
pub fn new(business_id: String, created_at: String, customer_id: String, id: String, instances_count: i32, key: String, payment_id: String, product_id: String, status: models::LicenseKeyStatus, payload_type: PayloadType) -> LicenseKey {
LicenseKey {
activations_limit: None,
business_id,
created_at,
customer_id,
expires_at: None,
id,
instances_count,
key,
payment_id,
product_id,
status,
subscription_id: None,
payload_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PayloadType {
#[serde(rename = "LicenseKey")]
LicenseKey,
}
impl Default for PayloadType {
fn default() -> PayloadType {
Self::LicenseKey
}
}