dodopayments_rust 2.2.2

Rust SDK for Dodo Payments API
Documentation
/*
 * public
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.87.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// CreditGrantResponse : Response for a credit grant
#[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 {
    /// Response for a credit grant
    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,
        }
    }
}