use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Transaction {
#[serde(rename = "agreement", skip_serializing_if = "Option::is_none")]
pub agreement: Option<models::TransactionAgreement>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "error", deserialize_with = "Option::deserialize")]
pub error: Option<String>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "isGift", skip_serializing_if = "Option::is_none")]
pub is_gift: Option<bool>,
#[serde(rename = "isTokens", skip_serializing_if = "Option::is_none")]
pub is_tokens: Option<bool>,
#[serde(rename = "sandbox")]
pub sandbox: bool,
#[serde(rename = "status")]
pub status: models::TransactionStatus,
#[serde(rename = "steam", skip_serializing_if = "Option::is_none")]
pub steam: Option<models::TransactionSteamInfo>,
#[serde(rename = "subscription")]
pub subscription: models::Subscription,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "userDisplayName", skip_serializing_if = "Option::is_none")]
pub user_display_name: Option<String>,
#[serde(rename = "userId", skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
}
impl Transaction {
pub fn new(
created_at: String,
error: Option<String>,
id: String,
sandbox: bool,
status: models::TransactionStatus,
subscription: models::Subscription,
updated_at: String,
) -> Transaction {
Transaction {
agreement: None,
created_at,
error,
id,
is_gift: None,
is_tokens: None,
sandbox,
status,
steam: None,
subscription,
updated_at,
user_display_name: None,
user_id: None,
}
}
}