use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreditLedgerEntry {
#[serde(rename = "amount")]
pub amount: String,
#[serde(rename = "balance_after")]
pub balance_after: String,
#[serde(rename = "balance_before")]
pub balance_before: String,
#[serde(rename = "business_id")]
pub business_id: String,
#[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 = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "grant_id", skip_serializing_if = "Option::is_none")]
pub grant_id: Option<String>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "is_credit")]
pub is_credit: bool,
#[serde(rename = "overage_after")]
pub overage_after: String,
#[serde(rename = "overage_before")]
pub overage_before: String,
#[serde(rename = "reference_id", skip_serializing_if = "Option::is_none")]
pub reference_id: Option<String>,
#[serde(rename = "reference_type", skip_serializing_if = "Option::is_none")]
pub reference_type: Option<String>,
#[serde(rename = "transaction_type")]
pub transaction_type: models::CbbLedgerTransactionType,
#[serde(rename = "payload_type")]
pub payload_type: PayloadType,
}
impl CreditLedgerEntry {
pub fn new(amount: String, balance_after: String, balance_before: String, business_id: String, created_at: String, credit_entitlement_id: String, customer_id: String, id: String, is_credit: bool, overage_after: String, overage_before: String, transaction_type: models::CbbLedgerTransactionType, payload_type: PayloadType) -> CreditLedgerEntry {
CreditLedgerEntry {
amount,
balance_after,
balance_before,
business_id,
created_at,
credit_entitlement_id,
customer_id,
description: None,
grant_id: None,
id,
is_credit,
overage_after,
overage_before,
reference_id: None,
reference_type: None,
transaction_type,
payload_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PayloadType {
#[serde(rename = "CreditLedgerEntry")]
CreditLedgerEntry,
}
impl Default for PayloadType {
fn default() -> PayloadType {
Self::CreditLedgerEntry
}
}