use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateOneTimePaymentResponse {
#[serde(rename = "client_secret")]
pub client_secret: String,
#[serde(rename = "customer")]
pub customer: Box<models::CustomerLimitedDetailsResponse>,
#[serde(rename = "discount_id", skip_serializing_if = "Option::is_none")]
pub discount_id: Option<String>,
#[serde(rename = "expires_on", skip_serializing_if = "Option::is_none")]
pub expires_on: Option<String>,
#[serde(rename = "metadata")]
pub metadata: std::collections::HashMap<String, String>,
#[serde(rename = "payment_id")]
pub payment_id: String,
#[serde(rename = "payment_link", skip_serializing_if = "Option::is_none")]
pub payment_link: Option<String>,
#[serde(rename = "product_cart", skip_serializing_if = "Option::is_none")]
pub product_cart: Option<Vec<models::OneTimeProductCartItemReq>>,
#[serde(rename = "total_amount")]
pub total_amount: i32,
}
impl CreateOneTimePaymentResponse {
pub fn new(client_secret: String, customer: models::CustomerLimitedDetailsResponse, metadata: std::collections::HashMap<String, String>, payment_id: String, total_amount: i32) -> CreateOneTimePaymentResponse {
CreateOneTimePaymentResponse {
client_secret,
customer: Box::new(customer),
discount_id: None,
expires_on: None,
metadata,
payment_id,
payment_link: None,
product_cart: None,
total_amount,
}
}
}