origin_sdk/protocol/
entitlements.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct ConsumeEntitlement {
5 #[serde(rename = "@UserId")]
6 pub user_id: u64,
7 #[serde(rename = "@Uses")]
8 pub uses: i32,
9 #[serde(rename = "@bOveruse")]
10 pub b_overuse: bool,
11 #[serde(rename = "Entitlement")]
12 pub entitlement: Entitlement,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub struct ConsumeEntitlementResponse {
17 #[serde(rename = "Entitlement")]
18 pub entitlement: Entitlement,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub struct Entitlement {
23 #[serde(rename = "@Type")]
24 pub r#type: String,
25 #[serde(rename = "@ItemId")]
26 pub item_id: String,
27 #[serde(rename = "@EntitlementId")]
28 pub entitlement_id: String,
29 #[serde(rename = "@EntitlementTag")]
30 pub entitlement_tag: String,
31 #[serde(rename = "@Group")]
32 pub group: String,
33 #[serde(rename = "@ResourceId")]
34 pub resource_id: String,
35 #[serde(rename = "@UseCount")]
36 pub use_count: i32,
37 #[serde(rename = "@Expiration")]
38 pub expiration: String,
39 #[serde(rename = "@GrantDate")]
40 pub grant_date: String,
41 #[serde(rename = "@LastModifiedDate")]
42 pub last_modified_date: String,
43 #[serde(rename = "@Version")]
44 pub version: i32,
45}
46
47#[derive(Debug, Serialize, Deserialize)]
48pub struct ExtendTrial {
49 #[serde(rename = "@UserId")]
50 pub user_id: u64,
51 #[serde(rename = "@RequestTicket")]
52 pub request_ticket: String,
53 #[serde(rename = "@TicketEngine")]
54 pub ticket_engine: i32,
55}
56
57#[derive(Debug, Serialize, Deserialize)]
58pub struct ExtendTrialResponse {
59 #[serde(rename = "@Code")]
60 pub code: i32,
61 #[serde(rename = "@TotalTimeRemaining")]
62 pub total_time_remaining: i32,
63 #[serde(rename = "@TimeGranted")]
64 pub time_granted: i32,
65 #[serde(rename = "@ResponseTicket")]
66 pub response_ticket: String,
67 #[serde(
68 rename = "@RetryCount",
69 default = "ExtendTrialResponse::default_retry_count"
70 )]
71 pub retry_count: i32,
72 #[serde(
73 rename = "@RetryAfterFailSec",
74 default = "ExtendTrialResponse::default_retry_after_fail_sec"
75 )]
76 pub retry_after_fail_sec: i32,
77 #[serde(
78 rename = "@ExtendBeforeExpireSec",
79 default = "ExtendTrialResponse::default_extend_before_expire_sec"
80 )]
81 pub extend_before_expire_sec: i32,
82 #[serde(
83 rename = "@SleepBeforeNukeSec",
84 default = "ExtendTrialResponse::default_sleep_before_nuke_sec"
85 )]
86 pub sleep_before_nuke_sec: i32,
87}
88
89impl ExtendTrialResponse {
90 #[must_use]
91 pub fn default_retry_count() -> i32 {
92 5i32
93 }
94
95 #[must_use]
96 pub fn default_retry_after_fail_sec() -> i32 {
97 10i32
98 }
99
100 #[must_use]
101 pub fn default_extend_before_expire_sec() -> i32 {
102 60i32
103 }
104
105 #[must_use]
106 pub fn default_sleep_before_nuke_sec() -> i32 {
107 20i32
108 }
109}
110
111#[derive(Debug, Serialize, Deserialize)]
112pub struct QueryEntitlements {
113 #[serde(rename = "@UserId")]
114 pub user_id: u64,
115 #[serde(rename = "@OfferId")]
116 pub offer_id: String,
117 #[serde(rename = "@ItemId")]
118 pub item_id: String,
119 #[serde(rename = "@Group")]
120 pub group: String,
121 #[serde(rename = "@includeChildGroups")]
122 pub include_child_groups: bool,
123 #[serde(rename = "@includeExpiredTrialDLC")]
124 pub include_expired_trial_dlc: bool,
125 #[serde(rename = "FilterOffers", default)]
126 pub filter_offers: Vec<String>,
127 #[serde(rename = "FilterItems", default)]
128 pub filter_items: Vec<String>,
129 #[serde(rename = "FilterGroups", default)]
130 pub filter_groups: Vec<String>,
131}
132
133#[derive(Debug, Serialize, Deserialize)]
134pub struct QueryEntitlementsResponse {
135 #[serde(rename = "Entitlement", default)]
136 pub entitlements: Vec<Entitlement>,
137}
138
139#[derive(Debug, Serialize, Deserialize)]
140pub struct QueryManifest {
141 #[serde(rename = "@UserId")]
142 pub user_id: u64,
143 #[serde(rename = "@Manifest")]
144 pub manifest: String,
145}
146
147#[derive(Debug, Serialize, Deserialize)]
148pub struct QueryManifestResponse {
149 #[serde(rename = "Entitlement", default)]
150 pub entitlements: Vec<Entitlement>,
151}