Skip to main content

egs_api/api/types/
uplay.rs

1use serde::{Deserialize, Serialize};
2
3/// GraphQL response wrapper for Uplay partner integration queries.
4#[allow(missing_docs)]
5#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
6pub struct UplayGraphQLResponse<T> {
7    pub data: Option<UplayPartnerData<T>>,
8    pub errors: Option<Vec<serde_json::Value>>,
9}
10
11/// Partner integration data container.
12#[allow(missing_docs)]
13#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
14#[serde(rename_all = "PascalCase")]
15pub struct UplayPartnerData<T> {
16    pub partner_integration: Option<T>,
17}
18
19/// Container for Uplay codes query result.
20#[allow(missing_docs)]
21#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
22#[serde(rename_all = "camelCase")]
23pub struct UplayCodesResult {
24    pub account_uplay_codes: Option<Vec<UplayCode>>,
25}
26
27/// Container for Uplay code claim mutation result.
28#[allow(missing_docs)]
29#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
30#[serde(rename_all = "camelCase")]
31pub struct UplayClaimResult {
32    pub claim_uplay_code: Option<UplayMutationResponse>,
33}
34
35/// Container for Uplay redeem-all mutation result.
36#[allow(missing_docs)]
37#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct UplayRedeemResult {
40    pub redeem_all_pending_codes: Option<UplayMutationResponse>,
41}
42
43/// A Uplay code entry linking an Epic game to a Ubisoft account.
44#[allow(missing_docs)]
45#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct UplayCode {
48    pub epic_account_id: Option<String>,
49    pub game_id: Option<String>,
50    pub uplay_account_id: Option<String>,
51    pub region_code: Option<String>,
52    pub redeemed_on_uplay: Option<bool>,
53    pub redemption_timestamp: Option<String>,
54}
55
56/// Response from a Uplay claim or redeem mutation.
57#[allow(missing_docs)]
58#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
59pub struct UplayMutationResponse {
60    pub data: Option<Vec<UplayCode>>,
61    pub success: Option<bool>,
62}