use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::models::advanced_commerce_request_info::AdvancedCommerceRequestInfo;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AdvancedCommerceSubscriptionCancelRequest {
pub request_info: AdvancedCommerceRequestInfo,
#[serde(skip_serializing_if = "Option::is_none")]
pub storefront: Option<String>,
}
impl AdvancedCommerceSubscriptionCancelRequest {
pub fn new(request_reference_id: Uuid) -> Self {
Self {
request_info: AdvancedCommerceRequestInfo::new(request_reference_id),
storefront: None,
}
}
pub fn with_storefront(mut self, storefront: String) -> Self {
self.storefront = Some(storefront);
self
}
pub fn with_request_info(mut self, request_info: AdvancedCommerceRequestInfo) -> Self {
self.request_info = request_info;
self
}
}