use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Refund {
#[serde(rename = "amount", skip_serializing_if = "Option::is_none")]
pub amount: Option<i32>,
#[serde(rename = "business_id")]
pub business_id: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<models::Currency>,
#[serde(rename = "customer")]
pub customer: Box<models::CustomerLimitedDetailsResponse>,
#[serde(rename = "is_partial")]
pub is_partial: bool,
#[serde(rename = "metadata")]
pub metadata: std::collections::HashMap<String, String>,
#[serde(rename = "payment_id")]
pub payment_id: String,
#[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(rename = "refund_id")]
pub refund_id: String,
#[serde(rename = "status")]
pub status: models::RefundStatus,
#[serde(rename = "payload_type")]
pub payload_type: PayloadType,
}
impl Refund {
pub fn new(business_id: String, created_at: String, customer: models::CustomerLimitedDetailsResponse, is_partial: bool, metadata: std::collections::HashMap<String, String>, payment_id: String, refund_id: String, status: models::RefundStatus, payload_type: PayloadType) -> Refund {
Refund {
amount: None,
business_id,
created_at,
currency: None,
customer: Box::new(customer),
is_partial,
metadata,
payment_id,
reason: None,
refund_id,
status,
payload_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PayloadType {
#[serde(rename = "Refund")]
Refund,
}
impl Default for PayloadType {
fn default() -> PayloadType {
Self::Refund
}
}