use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateCheckoutSessionRequest {
#[serde(rename = "allowed_payment_method_types", skip_serializing_if = "Option::is_none")]
pub allowed_payment_method_types: Option<Vec<models::PaymentMethodTypes>>,
#[serde(rename = "billing_address", skip_serializing_if = "Option::is_none")]
pub billing_address: Option<Box<models::CheckoutSessionBillingAddress>>,
#[serde(rename = "billing_currency", skip_serializing_if = "Option::is_none")]
pub billing_currency: Option<models::Currency>,
#[serde(rename = "confirm", skip_serializing_if = "Option::is_none")]
pub confirm: Option<bool>,
#[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
pub custom_fields: Option<Vec<models::CustomField>>,
#[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
pub customer: Option<Box<models::CustomerRequest>>,
#[serde(rename = "customization", skip_serializing_if = "Option::is_none")]
pub customization: Option<Box<models::CheckoutSessionCustomization>>,
#[serde(rename = "discount_code", skip_serializing_if = "Option::is_none")]
pub discount_code: Option<String>,
#[serde(rename = "feature_flags", skip_serializing_if = "Option::is_none")]
pub feature_flags: Option<Box<models::CheckoutSessionFlags>>,
#[serde(rename = "force_3ds", skip_serializing_if = "Option::is_none")]
pub force_3ds: Option<bool>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "minimal_address", skip_serializing_if = "Option::is_none")]
pub minimal_address: Option<bool>,
#[serde(rename = "payment_method_id", skip_serializing_if = "Option::is_none")]
pub payment_method_id: Option<String>,
#[serde(rename = "product_cart")]
pub product_cart: Vec<models::ProductItemReq>,
#[serde(rename = "product_collection_id", skip_serializing_if = "Option::is_none")]
pub product_collection_id: Option<String>,
#[serde(rename = "return_url", skip_serializing_if = "Option::is_none")]
pub return_url: Option<String>,
#[serde(rename = "short_link", skip_serializing_if = "Option::is_none")]
pub short_link: Option<bool>,
#[serde(rename = "show_saved_payment_methods", skip_serializing_if = "Option::is_none")]
pub show_saved_payment_methods: Option<bool>,
#[serde(rename = "subscription_data", skip_serializing_if = "Option::is_none")]
pub subscription_data: Option<Box<models::SubscriptionData>>,
#[serde(rename = "tax_id", skip_serializing_if = "Option::is_none")]
pub tax_id: Option<String>,
}
impl CreateCheckoutSessionRequest {
pub fn new(product_cart: Vec<models::ProductItemReq>) -> CreateCheckoutSessionRequest {
CreateCheckoutSessionRequest {
allowed_payment_method_types: None,
billing_address: None,
billing_currency: None,
confirm: None,
custom_fields: None,
customer: None,
customization: None,
discount_code: None,
feature_flags: None,
force_3ds: None,
metadata: None,
minimal_address: None,
payment_method_id: None,
product_cart,
product_collection_id: None,
return_url: None,
short_link: None,
show_saved_payment_methods: None,
subscription_data: None,
tax_id: None,
}
}
}