use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreditGrantResponse {
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "credit_entitlement_id")]
pub credit_entitlement_id: 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 = "initial_amount")]
pub initial_amount: String,
#[serde(rename = "is_expired")]
pub is_expired: bool,
#[serde(rename = "is_rolled_over")]
pub is_rolled_over: bool,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "parent_grant_id", skip_serializing_if = "Option::is_none")]
pub parent_grant_id: Option<String>,
#[serde(rename = "remaining_amount")]
pub remaining_amount: String,
#[serde(rename = "rollover_count")]
pub rollover_count: i32,
#[serde(rename = "source_id", skip_serializing_if = "Option::is_none")]
pub source_id: Option<String>,
#[serde(rename = "source_type")]
pub source_type: models::CbbGrantSourceType,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
impl CreditGrantResponse {
pub fn new(created_at: String, credit_entitlement_id: String, customer_id: String, id: String, initial_amount: String, is_expired: bool, is_rolled_over: bool, remaining_amount: String, rollover_count: i32, source_type: models::CbbGrantSourceType, updated_at: String) -> CreditGrantResponse {
CreditGrantResponse {
created_at,
credit_entitlement_id,
customer_id,
expires_at: None,
id,
initial_amount,
is_expired,
is_rolled_over,
metadata: None,
parent_grant_id: None,
remaining_amount,
rollover_count,
source_id: None,
source_type,
updated_at,
}
}
}