origin_sdk/protocol/
commerce.rs1use serde::{Deserialize, Serialize};
2
3use crate::protocol::entitlements::Entitlement;
4
5#[derive(Debug, Serialize, Deserialize)]
6pub struct Checkout {
7 #[serde(rename = "@UserId")]
8 pub user_id: u64,
9 #[serde(rename = "@Currency")]
10 pub currency: String,
11 #[serde(rename = "Offers", default)]
12 pub offers: Vec<String>,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub struct GetWalletBalance {
17 #[serde(rename = "@UserId")]
18 pub user_id: u64,
19 #[serde(rename = "@Currency")]
20 pub currency: String,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub struct GetWalletBalanceResponse {
25 #[serde(rename = "@Balance")]
26 pub balance: i64,
27}
28
29#[derive(Debug, Serialize, Deserialize)]
30pub struct Offer {
31 #[serde(rename = "@Type")]
32 pub r#type: String,
33 #[serde(rename = "@OfferId")]
34 pub offer_id: String,
35 #[serde(rename = "@Name")]
36 pub name: String,
37 #[serde(rename = "@Description")]
38 pub description: String,
39 #[serde(rename = "@ImageId")]
40 pub image_id: String,
41 #[serde(rename = "@GameDistributionSub")]
42 pub game_distribution_sub_type: String,
43 #[serde(rename = "@bIsOwned")]
44 pub b_is_owned: bool,
45 #[serde(rename = "@bHidden")]
46 pub b_hidden: bool,
47 #[serde(rename = "@bCanPurchase")]
48 pub b_can_purchase: bool,
49 #[serde(rename = "@PurchaseDate")]
50 pub purchase_date: String,
51 #[serde(rename = "@DownloadDate")]
52 pub download_date: String,
53 #[serde(rename = "@PlayableDate")]
54 pub playable_date: String,
55 #[serde(rename = "@UseEndDate")]
56 pub use_end_date: String,
57 #[serde(rename = "@DownloadSize")]
58 pub download_size: u64,
59 #[serde(rename = "@Currency")]
60 pub currency: String,
61 #[serde(rename = "@bIsDiscounted")]
62 pub b_is_discounted: bool,
63 #[serde(rename = "@Price")]
64 pub price: f64,
65 #[serde(rename = "@LocalizedPrice")]
66 pub localized_price: String,
67 #[serde(rename = "@OriginalPrice")]
68 pub original_price: f64,
69 #[serde(rename = "@LocalizedOriginalPrice")]
70 pub localized_original_price: String,
71 #[serde(rename = "@InventoryCap")]
72 pub inventory_cap: i32,
73 #[serde(rename = "@InventorySold")]
74 pub inventory_sold: i32,
75 #[serde(rename = "@InventoryAvailable")]
76 pub inventory_available: i32,
77 #[serde(rename = "Entitlements", default)]
78 pub entitlements: Vec<Entitlement>,
79}
80
81#[derive(Debug, Serialize, Deserialize)]
82pub struct PurchaseEvent {
83 #[serde(rename = "@manifest")]
84 pub manifest: String,
85}
86
87#[derive(Debug, Serialize, Deserialize)]
88pub struct QueryOffers {
89 #[serde(rename = "@UserId")]
90 pub user_id: u64,
91 #[serde(rename = "FilterCategories", default)]
92 pub filter_categories: Vec<String>,
93 #[serde(rename = "FilterMasterTitleIds", default)]
94 pub filter_master_title_ids: Vec<String>,
95 #[serde(rename = "FilterOffers", default)]
96 pub filter_offers: Vec<String>,
97}
98
99#[derive(Debug, Serialize, Deserialize)]
100pub struct QueryOffersResponse {
101 #[serde(rename = "Offer", default)]
102 pub offers: Vec<Offer>,
103}