SDK for / Overview

XsollaStoreDataModel.h

1// Copyright 2024 Xsolla Inc. All Rights Reserved.
2
3#pragma once
4
5#include "XsollaUtilsDataModel.h"
6#include "XsollaStoreDataModel.generated.h"
7
8UENUM(BlueprintType)
9enum class EXsollaOrderStatus : uint8
10{
11Unknown,
12New,
13Paid,
14Done,
15Canceled
16};
17
18USTRUCT(BlueprintType)
19struct XSOLLASTORE_API FXsollaOrderItem
20{
21GENERATED_BODY()
22
23UPROPERTY(BlueprintReadOnly, Category = "Order Item")
24FString sku;
25
26UPROPERTY(BlueprintReadOnly, Category = "Order Item")
27int32 quantity;
28
29UPROPERTY(BlueprintReadOnly, Category = "Order Item")
30FString is_free;
31
32UPROPERTY(BlueprintReadOnly, Category = "Order Item")
33FXsollaPrice price;
34
36: quantity(0){};
37};
38
39USTRUCT(BlueprintType)
40struct XSOLLASTORE_API FXsollaOrderContent
41{
42GENERATED_BODY()
43
44UPROPERTY(BlueprintReadOnly, Category = "Order Content")
45FXsollaPrice price;
46
47UPROPERTY(BlueprintReadOnly, Category = "Order Content")
48FXsollaVirtualCurrencyPrice virtual_price;
49
50UPROPERTY(BlueprintReadOnly, Category = "Order Content")
51FString is_free;
52
53UPROPERTY(BlueprintReadOnly, Category = "Order Content")
54TArray<FXsollaOrderItem> items;
55};
56
57USTRUCT(BlueprintType)
58struct XSOLLASTORE_API FXsollaOrder
59{
60GENERATED_BODY()
61
62UPROPERTY(BlueprintReadOnly, Category = "Order")
63int32 order_id = 0;
64
65UPROPERTY(BlueprintReadOnly, Category = "Order")
66FString status;
67
68UPROPERTY(BlueprintReadOnly, Category = "Order")
70};
71
72USTRUCT(BlueprintType)
73struct XSOLLASTORE_API FStoreBundleContent
74{
75GENERATED_BODY()
76
77UPROPERTY(BlueprintReadOnly, Category = "Bundle")
78FString sku;
79
80UPROPERTY(BlueprintReadOnly, Category = "Bundle")
81FString name;
82
83UPROPERTY(BlueprintReadOnly, Category = "Bundle")
84FString type;
85
86UPROPERTY(BlueprintReadOnly, Category = "Bundle")
87FString description;
88
89UPROPERTY(BlueprintReadOnly, Category = "Bundle")
90FString image_url;
91
92UPROPERTY(BlueprintReadOnly, Category = "Bundle")
93int32 quantity = 0;
94
95UPROPERTY(BlueprintReadOnly, Category = "Bundle")
96FXsollaPrice price;
97
98UPROPERTY(BlueprintReadOnly, Category = "Bundle")
99TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
100};
101
102USTRUCT(BlueprintType)
103struct XSOLLASTORE_API FStoreItemMediaList
104{
105GENERATED_BODY()
106
107UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Media List")
108FString type;
109
110UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Media List")
111FString url;
112};
113
114USTRUCT(BlueprintType)
115struct XSOLLASTORE_API FStoreItem
116{
117GENERATED_BODY()
118
119/* Unique item ID. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores. */
120UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
121FString sku;
122
123/* Item name. */
124UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
125FString name;
126
127/* Item description. */
128UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
129FString description;
130
131/* Type of item: Consumable/Expiration/Permanent/Lootboxes/Physical. */
132UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
133FString type;
134
135/* Type of virtual item. */
136UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
137FString virtual_item_type;
138
139/* Groups the item belongs to. */
140UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
141TArray<FXsollaItemGroup> groups;
142
143/* If `true`, the item is free. */
144UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
145bool is_free;
146
147/* Item prices */
148UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
149FXsollaPrice price;
150
151/* Virtual prices. */
152UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
153TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
154
155/* Image URL. */
156UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
157FString image_url;
158
159/* Defines the inventory item options. */
160UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
161FXsollaItemOptions inventory_options;
162
163/* Type off bundle. In this case, it is always `standart`. */
164UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Bundle")
165FString bundle_type;
166
167/* Sum of the bundle content prices. */
168UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Bundle")
169FXsollaPrice total_content_price;
170
171/* Bundle package content. */
172UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Bundle")
173TArray<FStoreBundleContent> content;
174
175/* List of attributes and their values corresponding to the item. Can be used for catalog filtering. */
176UPROPERTY(BlueprintReadOnly, Category = "Virtual Item Bundle")
177TArray<FXsollaItemAttribute> attributes;
178
179/* Item long description. */
180UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
181FString long_description;
182
183/* Value that defines arrangement order. */
184UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
185int32 order;
186
187/* List of additional item assets such as screenshots, gameplay video etc.. */
188UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
189TArray<FStoreItemMediaList> media_list;
190
191UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
192TArray<FXsollaStoreItemPromotion> promotions;
193
194UPROPERTY(BlueprintReadOnly, Category = "Virtual Item")
195FXsollaStoreItemLimits limits;
196
197public:
199: is_free(false)
200, order(0){};
201
202FStoreItem(const FStoreItem& Item)
203: sku(Item.sku)
204, name(Item.name)
205, description(Item.description)
206, type(Item.type)
207, virtual_item_type(Item.virtual_item_type)
208, groups(Item.groups)
209, is_free(Item.is_free)
210, price(Item.price)
211, virtual_prices(Item.virtual_prices)
212, image_url(Item.image_url)
213, inventory_options(Item.inventory_options)
214, bundle_type(Item.bundle_type)
215, total_content_price(Item.total_content_price)
216, content(Item.content)
217, attributes(Item.attributes)
218, long_description(Item.long_description)
219, order(Item.order)
220, media_list(Item.media_list)
221, promotions(Item.promotions)
222, limits(Item.limits)
223{
224}
225
226FStoreItem(const struct FStoreBundle& Bundle);
227
228bool operator==(const FStoreItem& Item) const
229{
230return sku == Item.sku;
231}
232};
233
234USTRUCT(BlueprintType)
235struct XSOLLASTORE_API FStoreItemsList
236{
237GENERATED_BODY()
238
239UPROPERTY(BlueprintReadOnly, Category = "Items List", meta = (DisplayName = "bHasMore"))
240bool has_more = false;
241
242UPROPERTY(BlueprintReadOnly, Category = "Items List")
243TArray<FStoreItem> Items;
244};
245
246USTRUCT(BlueprintType)
247struct XSOLLASTORE_API FStoreItemsData
248{
249public:
250GENERATED_BODY()
251
252UPROPERTY(BlueprintReadOnly, Category = "Items Data", meta = (DisplayName = "bHasMore"))
253bool has_more = false;
254
255UPROPERTY(BlueprintReadOnly, Category = "Items Data")
256TArray<FStoreItem> Items;
257
258public:
260};
261
262USTRUCT(BlueprintType)
263struct XSOLLASTORE_API FStoreItemGroupsData
264{
265public:
266GENERATED_BODY()
267
268
269UPROPERTY(BlueprintReadOnly, Category = "Item Groups Data")
270TArray<FXsollaItemGroup> groups;
271
272public:
274};
275
276USTRUCT(BlueprintType)
277struct XSOLLASTORE_API FVirtualCurrency
278{
279public:
280GENERATED_BODY()
281
282UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
283FString sku;
284
285UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
286FString name;
287
288UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
289TArray<FString> groups;
290
291UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
292TArray<FXsollaItemAttribute> attributes;
293
294UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
295FString type;
296
297UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
298FString description;
299
300UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
301FString image_url;
302
303UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
304bool is_free;
305
306UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
307FXsollaPrice price;
308
309UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
310TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
311
312UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
313FXsollaItemOptions inventory_options;
314
315UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
316FString long_description;
317
318UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
319int32 order;
320
321UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
322TArray<FStoreItemMediaList> media_list;
323
324UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
325TArray<FXsollaStoreItemPromotion> promotions;
326
327UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency")
328FXsollaStoreItemLimits limits;
329
330public:
332: is_free(false)
333, order(0){};
334};
335
336USTRUCT(BlueprintType)
337struct XSOLLASTORE_API FVirtualCurrencyData
338{
339public:
340GENERATED_BODY()
341
342UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Data", meta = (DisplayName = "bHasMore"))
343bool has_more = false;
344
345UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Data")
346TArray<FVirtualCurrency> Items;
347
348public:
350};
351
352USTRUCT(BlueprintType)
353struct XSOLLASTORE_API FVirtualCurrencyPackageContent
354{
355public:
356GENERATED_BODY()
357
358UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
359FString sku;
360
361UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
362FString name;
363
364UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
365FString type;
366
367UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
368FString description;
369
370UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
371FString image_url;
372
373UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
374int32 quantity;
375
376UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package Content")
377FXsollaItemOptions inventory_options;
378
379public:
381: quantity(0){};
382};
383
384USTRUCT(BlueprintType)
385struct XSOLLASTORE_API FVirtualCurrencyPackage
386{
387public:
388GENERATED_BODY()
389
390UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
391FString sku;
392
393UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
394FString name;
395
396UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
397FString type;
398
399UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
400FString description;
401
402UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
403FString image_url;
404
405UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
406TArray<FXsollaItemAttribute> attributes;
407
408UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
409TArray<FXsollaItemGroup> groups;
410
411UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
412FString bundle_type;
413
414UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
415bool is_free;
416
417UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
418FXsollaPrice price;
419
420UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
421TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
422
423UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
425
426UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
427FString long_description;
428
429UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
430int32 order;
431
432UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
433TArray<FStoreItemMediaList> media_list;
434
435UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
436TArray<FXsollaStoreItemPromotion> promotions;
437
438UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Package")
439FXsollaStoreItemLimits limits;
440
441public:
443: is_free(false)
444, order(0){};
445};
446
447USTRUCT(BlueprintType)
448struct XSOLLASTORE_API FVirtualCurrencyPackagesData
449{
450public:
451GENERATED_BODY()
452
453UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Packages Data", meta = (DisplayName = "bHasMore"))
454bool has_more = false;
455
456UPROPERTY(BlueprintReadOnly, Category = "Virtual Currency Packages Data")
457TArray<FVirtualCurrencyPackage> Items;
458
459public:
461};
462
463USTRUCT(BlueprintType)
464struct XSOLLASTORE_API FStoreCartItem
465{
466GENERATED_BODY()
467
468UPROPERTY(BlueprintReadWrite, Category = "Cart Item")
469FString sku;
470
471UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
472FString name;
473
474UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
475TArray<FXsollaItemAttribute> attributes;
476
477UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
478TArray<FXsollaItemGroup> groups;
479
480UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
481FString description;
482
483UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
484FString long_description;
485
486UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
487FString type;
488
489UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
490FString virtual_item_type;
491
492UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
493bool is_free;
494
495UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
496bool is_bonus;
497
498UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
499FXsollaPrice price;
500
501UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
502TArray<FXsollaVirtualCurrencyPrice> vc_prices;
503
504UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
505FString image_url;
506
507UPROPERTY(BlueprintReadWrite, Category = "Cart Item")
508int32 quantity;
509
510UPROPERTY(BlueprintReadOnly, Category = "Cart Item")
511FXsollaItemOptions inventory_options;
512
513public:
515: is_free(false)
516, is_bonus(false)
517, quantity(0){};
518
519FStoreCartItem(const FStoreItem& Item)
520: sku(Item.sku)
521, name(Item.name)
522, is_free(Item.is_free)
523, is_bonus(false)
524, price(Item.price)
525, image_url(Item.image_url)
526, quantity(0){};
527
528FStoreCartItem(const FVirtualCurrencyPackage& CurrencyPackage)
529: sku(CurrencyPackage.sku)
530, name(CurrencyPackage.name)
531, is_free(CurrencyPackage.is_free)
532, is_bonus(false)
533, price(CurrencyPackage.price)
534, image_url(CurrencyPackage.image_url)
535, quantity(0){};
536
537bool operator==(const FStoreCartItem& Item) const
538{
539return sku == Item.sku;
540}
541
542/*bool operator==(const FStoreItem& Item) const
543{
544return sku == Item.sku;
545}*/
546};
547
548USTRUCT(BlueprintType)
549struct XSOLLASTORE_API FStoreCart
550{
551public:
552GENERATED_BODY()
553
554UPROPERTY(BlueprintReadOnly, Category = "Cart Data")
555FString cart_id;
556
557UPROPERTY(BlueprintReadOnly, Category = "Cart Data")
558FXsollaPrice price;
559
560UPROPERTY(BlueprintReadOnly, Category = "Cart Data")
561bool is_free;
562
563UPROPERTY(BlueprintReadOnly, Category = "Cart Data")
564TArray<FStoreCartItem> Items;
565
566public:
568: is_free(false){};
569
570FStoreCart(FString CartId)
571: cart_id(CartId)
572, is_free(false){};
573
574// Check if we have the same set of items.
575bool operator==(const FStoreCart& Cart) const
576{
577if (cart_id == Cart.cart_id)
578{
579if (Items.Num() == Cart.Items.Num())
580{
581int32 ItemsCount = Items.Num();
582for (int32 i = 0; i < ItemsCount; ++i)
583{
584if (Items[i].sku == Cart.Items[i].sku)
585{
586if (Items[i].quantity != Cart.Items[i].quantity)
587{
588return false;
589}
590}
591else
592{
593return false;
594}
595}
596
597return true;
598}
599}
600
601return false;
602}
603};
604
605USTRUCT(BlueprintType)
606struct XSOLLASTORE_API FStoreBundle
607{
608GENERATED_BODY()
609
610UPROPERTY(BlueprintReadOnly, Category = "Bundle")
611FString sku;
612
613UPROPERTY(BlueprintReadOnly, Category = "Bundle")
614FString name;
615
616UPROPERTY(BlueprintReadOnly, Category = "Bundle")
617TArray<FXsollaItemGroup> groups;
618
619UPROPERTY(BlueprintReadOnly, Category = "Bundle")
620TArray<FXsollaItemAttribute> attributes;
621
622UPROPERTY(BlueprintReadOnly, Category = "Bundle")
623FString type;
624
625UPROPERTY(BlueprintReadOnly, Category = "Bundle")
626FString bundle_type;
627
628UPROPERTY(BlueprintReadOnly, Category = "Bundle")
629FString description;
630
631UPROPERTY(BlueprintReadOnly, Category = "Bundle")
632FString image_url;
633
634UPROPERTY(BlueprintReadOnly, Category = "Bundle")
635FString is_free;
636
637UPROPERTY(BlueprintReadOnly, Category = "Bundle")
638FXsollaPrice price;
639
640UPROPERTY(BlueprintReadOnly, Category = "Bundle")
641FXsollaPrice total_content_price;
642
643UPROPERTY(BlueprintReadOnly, Category = "Bundle")
644TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
645
646UPROPERTY(BlueprintReadOnly, Category = "Bundle")
647TArray<FStoreBundleContent> content;
648
649UPROPERTY(BlueprintReadOnly, Category = "Bundle")
650TArray<FXsollaStoreItemPromotion> promotions;
651
652UPROPERTY(BlueprintReadOnly, Category = "Bundle")
653FXsollaStoreItemLimits limits;
654};
655
656USTRUCT(BlueprintType)
657struct XSOLLASTORE_API FStoreListOfBundles
658{
659GENERATED_BODY()
660
661UPROPERTY(BlueprintReadOnly, Category = "Bundle", meta = (DisplayName = "bHasMore"))
662bool has_more = false;
663
664UPROPERTY(BlueprintReadOnly, Category = "Bundle")
665TArray<FStoreBundle> items;
666};
667
668USTRUCT(BlueprintType)
669struct XSOLLASTORE_API FStoreDiscount
670{
671GENERATED_BODY()
672
673UPROPERTY(BlueprintReadOnly, Category = "Discount")
674FString percent;
675};
676
677USTRUCT(BlueprintType)
678struct XSOLLASTORE_API FStorePromocodeRewardData
679{
680GENERATED_BODY()
681
682UPROPERTY(BlueprintReadOnly, Category = "Promocode Reward Data")
683TArray<FXsollaBonusItem> bonus;
684
686UPROPERTY(BlueprintReadOnly, Category = "Promocode Reward Data")
688
690UPROPERTY(BlueprintReadOnly, Category = "Promocode Reward Data")
691bool is_selectable = false;
692};
693
694inline FStoreItem::FStoreItem(const struct FStoreBundle& Bundle)
695{
696this->description = Bundle.description;
697this->groups = Bundle.groups;
698this->image_url = Bundle.image_url;
699this->is_free = Bundle.is_free == "true";
700this->name = Bundle.name;
701this->price = Bundle.price;
702this->sku = Bundle.sku;
703this->type = Bundle.type;
704this->virtual_prices = Bundle.virtual_prices;
705this->bundle_type = Bundle.bundle_type;
706this->total_content_price = Bundle.total_content_price;
707this->content = Bundle.content;
708this->attributes = Bundle.attributes;
709}
710
711USTRUCT(BlueprintType)
712struct XSOLLASTORE_API FGameUnitItem
713{
714GENERATED_BODY()
715
716UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
717FString sku;
718
719UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
720FString type;
721
722UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
723bool is_free = false;
724
725UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
726FXsollaPrice price;
727
728UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
729TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
730
731UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
732FString drm_name;
733
734UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
735FString drm_sku;
736
737UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
738bool has_keys = false;
739
740UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
741bool is_pre_order = false;
742
743UPROPERTY(BlueprintReadOnly, Category = "Game Unit Item")
744FString release_date;
745};
746
747USTRUCT(BlueprintType)
748struct XSOLLASTORE_API FGameKeyItem
749{
750GENERATED_BODY()
751
752UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
753FString sku;
754
755UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
756FString name;
757
758UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
759FString type;
760
761/* Groups the item belongs to. */
762UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
763TArray<FXsollaItemGroup> groups;
764
765UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
766TArray<FXsollaItemAttribute> attributes;
767
768UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
769FString description;
770
771UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
772FString image_url;
773
774UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
775bool is_free = false;
776
777UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
778FXsollaPrice price;
779
780UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
781TArray<FXsollaVirtualCurrencyPrice> virtual_prices;
782
783UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
784FString drm_name;
785
786UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
787FString drm_sku;
788
789UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
790bool has_keys = false;
791
792UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
793bool is_pre_order = false;
794
795UPROPERTY(BlueprintReadOnly, Category = "Game Key Item")
796FString release_date;
797};
798
799USTRUCT(BlueprintType)
800struct XSOLLASTORE_API FGameItem
801{
802GENERATED_BODY()
803
804UPROPERTY(BlueprintReadOnly, Category = "Game Item")
805FString sku;
806
807UPROPERTY(BlueprintReadOnly, Category = "Game Item")
808FString name;
809
810UPROPERTY(BlueprintReadOnly, Category = "Game Item")
811TArray<FXsollaItemGroup> groups;
812
813UPROPERTY(BlueprintReadOnly, Category = "Game Item")
814TArray<FXsollaItemAttribute> attributes;
815
816UPROPERTY(BlueprintReadOnly, Category = "Game Item")
817FString type;
818
819UPROPERTY(BlueprintReadOnly, Category = "Game Item")
820FString unit_type;
821
822UPROPERTY(BlueprintReadOnly, Category = "Game Item")
823FString description;
824
825UPROPERTY(BlueprintReadOnly, Category = "Game Item")
826FString image_url;
827
828UPROPERTY(BlueprintReadOnly, Category = "Game Item")
829TArray<FGameUnitItem> unit_items;
830};
831
832USTRUCT(BlueprintType)
833struct XSOLLASTORE_API FStoreGamesList
834{
835GENERATED_BODY()
836
837UPROPERTY(BlueprintReadOnly, Category = "Game List")
838TArray<FGameItem> Games;
839};
840
841USTRUCT(BlueprintType)
842struct XSOLLASTORE_API FStoreGamesData
843{
844GENERATED_BODY()
845
846UPROPERTY(BlueprintReadOnly, Category = "Games Data")
847TArray<FGameItem> Items;
848
850UPROPERTY(BlueprintReadOnly, Category = "Games Data")
851TSet<FString> GroupIds;
852
854UPROPERTY(BlueprintReadOnly, Category = "Games Data")
855TArray<FXsollaItemGroup> Groups;
856};
857
858USTRUCT(BlueprintType)
859struct XSOLLASTORE_API FStoreGameKeysList
860{
861GENERATED_BODY()
862
863UPROPERTY(BlueprintReadOnly, Category = "Game Key List")
864TArray<FGameKeyItem> GameKeys;
865};
866
867USTRUCT(BlueprintType)
868struct XSOLLASTORE_API FDRMItem
869{
870GENERATED_BODY()
871
872UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
873FString sku;
874
875UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
876FString name;
877
878UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
879FString image;
880
881UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
882FString link;
883
884UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
885FString redeem_instruction_link;
886
887UPROPERTY(BlueprintReadOnly, Category = "DRM Item")
888int32 drm_id = 0;
889};
890
891USTRUCT(BlueprintType)
892struct XSOLLASTORE_API FStoreDRMList
893{
894GENERATED_BODY()
895
896UPROPERTY(BlueprintReadOnly, Category = "DRM List")
897TArray<FDRMItem> drm;
898};
899
900USTRUCT(BlueprintType)
901struct XSOLLASTORE_API FOwnedGameItem
902{
903GENERATED_BODY()
904
905UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
906FString name;
907
908UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
909FString description;
910
911UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
912int32 project_id = 0;
913
914UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
915FString game_sku;
916
917UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
918FString drm;
919
920UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
921FString image_url;
922
923UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
924bool is_pre_order = false;
925
926UPROPERTY(BlueprintReadOnly, Category = "Owned Game Item")
927TArray<FXsollaItemAttribute> attributes;
928};
929
930USTRUCT(BlueprintType)
931struct XSOLLASTORE_API FOwnedGamesList
932{
933GENERATED_BODY()
934
935UPROPERTY(BlueprintReadOnly, Category = "Owned Games List", meta = (DisplayName = "bHasMore"))
936bool has_more = false;
937
938UPROPERTY(BlueprintReadOnly, Category = "Owned Games List")
939int32 total_items_count = 0;
940
941UPROPERTY(BlueprintReadOnly, Category = "Owned Games List")
942TArray<FOwnedGameItem> items;
943};
944
945USTRUCT(BlueprintType)
946struct XSOLLASTORE_API FSubscriptionPaystationLink
947{
948GENERATED_BODY()
949
950UPROPERTY(BlueprintReadOnly, Category = "Subscription Paystation Link")
951FString link_to_ps;
952};
953
954USTRUCT(BlueprintType)
955struct XSOLLASTORE_API FSubscriptionPeriod
956{
957GENERATED_BODY()
958
959UPROPERTY(BlueprintReadOnly, Category = "Subscription Period")
960int32 value = 0;
961
962UPROPERTY(BlueprintReadOnly, Category = "Subscription Period")
963FString unit;
964};
965
966USTRUCT(BlueprintType)
967struct XSOLLASTORE_API FSubscriptionCharge
968{
969GENERATED_BODY()
970
971UPROPERTY(BlueprintReadOnly, Category = "Subscription Charge")
972float amount = 0.f;
973
974UPROPERTY(BlueprintReadOnly, Category = "Subscription Charge")
975float amount_with_promotion = 0.f;
976
977UPROPERTY(BlueprintReadOnly, Category = "Subscription Charge")
978FString currency;
979};
980
981USTRUCT(BlueprintType)
982struct XSOLLASTORE_API FSubscriptionPlanCharge
983{
984GENERATED_BODY()
985
986UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan Charge")
987float amount = 0.f;
988
989UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan Charge")
990float setup_fee = false;
991
992UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan Charge")
993FString currency;
994};
995
996USTRUCT(BlueprintType)
997struct XSOLLASTORE_API FSubscriptionPlanPromotion
998{
999GENERATED_BODY()
1000
1001UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan Promotion")
1002float promotion_charge_amount = 0.f;
1003
1004UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan Promotion")
1005float promotion_remaining_charges = 0.f;
1006};
1007
1008USTRUCT(BlueprintType)
1009struct XSOLLASTORE_API FSubscriptionPlan
1010{
1011GENERATED_BODY()
1012
1013UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1014int32 plan_id = 0;
1015
1016UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1017FString plan_external_id;
1018
1019UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1020FString plan_group_id;
1021
1022UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1023FString plan_type;
1024
1025UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1026FString plan_name;
1027
1028UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1029FString plan_description;
1030
1031UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1032FDateTime plan_start_date;
1033
1034UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1035FDateTime plan_end_date;
1036
1037UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1038int32 trial_period = 0;
1039
1040UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1041FSubscriptionPeriod period;
1042
1043UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1045
1046UPROPERTY(BlueprintReadOnly, Category = "Subscription Plan")
1048};
1049
1050USTRUCT(BlueprintType)
1051struct XSOLLASTORE_API FSubscriptionPlansList
1052{
1053GENERATED_BODY()
1054
1055UPROPERTY(BlueprintReadOnly, Category = "Subscription Plans List")
1056TArray<FSubscriptionPlan> items;
1057
1058UPROPERTY(BlueprintReadOnly, Category = "Subscription Plans List", meta = (DisplayName = "bHasMore"))
1059bool has_more = false;
1060};
1061
1062USTRUCT(BlueprintType)
1063struct XSOLLASTORE_API FSubscription
1064{
1065GENERATED_BODY()
1066
1067UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1068int32 id = 0;
1069
1070UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1071int32 plan_id = 0;
1072
1073UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1074FString plan_external_id;
1075
1076UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1077FString plan_name;
1078
1079UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1080FString plan_description;
1081
1082UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1083FDateTime plan_start_date;
1084
1085UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1086FDateTime plan_end_date;
1087
1088UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1089int32 product_id = 0;
1090
1091UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1092FString product_external_id;
1093
1094UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1095FString product_name;
1096
1097UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1098FString product_description;
1099
1100UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1101FString status;
1102
1103UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1104bool is_in_trial = false;
1105
1106UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1107int32 trial_period = 0;
1108
1109UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1110FDateTime date_create;
1111
1112UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1113FDateTime date_next_charge;
1114
1115UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1116FDateTime date_last_charge;
1117
1118UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1119FSubscriptionCharge charge;
1120
1121UPROPERTY(BlueprintReadOnly, Category = "Subscription")
1122FSubscriptionPeriod period;
1123};
1124
1125USTRUCT(BlueprintType)
1126struct XSOLLASTORE_API FSubscriptionsList
1127{
1128GENERATED_BODY()
1129
1130UPROPERTY(BlueprintReadOnly, Category = "Subscriptions List")
1131TArray<FSubscription> items;
1132
1133UPROPERTY(BlueprintReadOnly, Category = "Subscriptions List", meta = (DisplayName = "bHasMore"))
1134bool has_more = false;
1135};
1136
1137USTRUCT(BlueprintType)
1138struct XSOLLASTORE_API FSubscriptionDetails
1139{
1140GENERATED_BODY()
1141
1142UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1143int32 id = 0;
1144
1145UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1146int32 plan_id = 0;
1147
1148UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1149FString plan_external_id;
1150
1151UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1152FString plan_name;
1153
1154UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1155FString plan_description;
1156
1157UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1158FDateTime plan_start_date;
1159
1160UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1161FDateTime plan_end_date;
1162
1163UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1164int32 product_id = 0;
1165
1166UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1167FString product_external_id;
1168
1169UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1170FString product_name;
1171
1172UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1173FString product_description;
1174
1175UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1176FString status;
1177
1178UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1179bool is_in_trial = false;
1180
1181UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1182int32 trial_period = 0;
1183
1184UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1185FDateTime date_create;
1186
1187UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1188FDateTime date_next_charge;
1189
1190UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1191FDateTime date_last_charge;
1192
1193UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1194FSubscriptionCharge charge;
1195
1196UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1197FSubscriptionPeriod period;
1198
1199UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1200FDateTime date_end;
1201
1202UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1203bool is_renew_possible = false;
1204
1205UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1206bool is_change_to_non_renew_possible = false;
1207
1208UPROPERTY(BlueprintReadOnly, Category = "Subscription Details")
1209bool is_change_plan_allowed = false;
1210};
Definition: XsollaStoreDataModel.h:869
Definition: XsollaStoreDataModel.h:801
Definition: XsollaStoreDataModel.h:749
Definition: XsollaStoreDataModel.h:713
Definition: XsollaStoreDataModel.h:902
Definition: XsollaStoreDataModel.h:932
Definition: XsollaStoreDataModel.h:74
Definition: XsollaStoreDataModel.h:607
Definition: XsollaStoreDataModel.h:550
Definition: XsollaStoreDataModel.h:465
Definition: XsollaStoreDataModel.h:893
Definition: XsollaStoreDataModel.h:670
Definition: XsollaStoreDataModel.h:860
Definition: XsollaStoreDataModel.h:843
Definition: XsollaStoreDataModel.h:834
Definition: XsollaStoreDataModel.h:264
Definition: XsollaStoreDataModel.h:116
Definition: XsollaStoreDataModel.h:104
Definition: XsollaStoreDataModel.h:248
Definition: XsollaStoreDataModel.h:236
Definition: XsollaStoreDataModel.h:658
Definition: XsollaStoreDataModel.h:679
Definition: XsollaStoreDataModel.h:968
Definition: XsollaStoreDataModel.h:1139
Definition: XsollaStoreDataModel.h:1064
Definition: XsollaStoreDataModel.h:956
Definition: XsollaStoreDataModel.h:983
Definition: XsollaStoreDataModel.h:1010
Definition: XsollaStoreDataModel.h:998
Definition: XsollaStoreDataModel.h:1052
Definition: XsollaStoreDataModel.h:1127
Definition: XsollaStoreDataModel.h:338
Definition: XsollaStoreDataModel.h:278
Definition: XsollaStoreDataModel.h:354
Definition: XsollaStoreDataModel.h:386
Definition: XsollaStoreDataModel.h:449
Definition: XsollaStoreDataModel.h:41
Definition: XsollaStoreDataModel.h:59
Definition: XsollaStoreDataModel.h:20