use crate::{
CreatePurchaseIntentPresentation, CreatePurchaseIntentRequestPrice,
CreatePurchaseIntentRequestProduct, CreatePurchaseIntentRequestQuantity,
CreatePurchaseIntentRequestUsage,
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CreatePurchaseIntentRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub product: Option<CreatePurchaseIntentRequestProduct>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price: Option<CreatePurchaseIntentRequestPrice>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<CreatePurchaseIntentRequestUsage>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<crate::Timestamp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub presentation: Option<CreatePurchaseIntentPresentation>,
pub quantity: CreatePurchaseIntentRequestQuantity,
}