@voucherify/sdk 2.9.2 → 2.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/ApiLimitsHandler.d.ts +13 -10
  2. package/dist/AsyncActions.d.ts +17 -15
  3. package/dist/Balance.d.ts +15 -12
  4. package/dist/Campaigns.d.ts +66 -58
  5. package/dist/Categories.d.ts +29 -26
  6. package/dist/ClientSide.d.ts +77 -53
  7. package/dist/Consents.d.ts +13 -10
  8. package/dist/Customers.d.ts +75 -72
  9. package/dist/Distributions.d.ts +29 -22
  10. package/dist/Events.d.ts +15 -10
  11. package/dist/Exports.d.ts +25 -22
  12. package/dist/Loyalties.d.ts +171 -159
  13. package/dist/MetadataSchemas.d.ts +17 -14
  14. package/dist/Orders.d.ts +32 -27
  15. package/dist/ProductCollections.d.ts +30 -26
  16. package/dist/Products.d.ts +66 -63
  17. package/dist/PromotionTiers.d.ts +43 -34
  18. package/dist/Promotions.d.ts +30 -18
  19. package/dist/PromotionsStacks.d.ts +34 -30
  20. package/dist/Qualifications.d.ts +24 -10
  21. package/dist/Redemptions.d.ts +53 -35
  22. package/dist/RequestController.d.ts +31 -29
  23. package/dist/Rewards.d.ts +46 -43
  24. package/dist/Segments.d.ts +25 -22
  25. package/dist/ValidationRules.d.ts +47 -43
  26. package/dist/Validations.d.ts +39 -17
  27. package/dist/VoucherifyClientSide.d.ts +112 -86
  28. package/dist/VoucherifyError.d.ts +23 -20
  29. package/dist/VoucherifyServerSide.d.ts +170 -131
  30. package/dist/Vouchers.d.ts +84 -78
  31. package/dist/helpers.d.ts +20 -18
  32. package/dist/index.d.ts +63 -25
  33. package/dist/types/ApplicableTo.d.ts +32 -30
  34. package/dist/types/AsyncActions.d.ts +23 -21
  35. package/dist/types/Balance.d.ts +18 -16
  36. package/dist/types/Campaigns.d.ts +124 -120
  37. package/dist/types/Categories.d.ts +40 -38
  38. package/dist/types/ClientSide.d.ts +145 -134
  39. package/dist/types/Consents.d.ts +34 -33
  40. package/dist/types/Customers.d.ts +363 -361
  41. package/dist/types/DiscountVoucher.d.ts +94 -93
  42. package/dist/types/Distributions.d.ts +148 -144
  43. package/dist/types/Events.d.ts +21 -17
  44. package/dist/types/Exports.d.ts +151 -149
  45. package/dist/types/Gift.d.ts +5 -3
  46. package/dist/types/Loyalties.d.ts +1061 -1057
  47. package/dist/types/MetadataSchemas.d.ts +34 -33
  48. package/dist/types/Orders.d.ts +199 -195
  49. package/dist/types/ProductCollections.d.ts +99 -96
  50. package/dist/types/Products.d.ts +108 -106
  51. package/dist/types/PromotionTiers.d.ts +131 -127
  52. package/dist/types/Promotions.d.ts +113 -108
  53. package/dist/types/PromotionsStacks.d.ts +74 -71
  54. package/dist/types/Qualifications.d.ts +92 -86
  55. package/dist/types/Redemptions.d.ts +215 -205
  56. package/dist/types/Rewards.d.ts +220 -219
  57. package/dist/types/Segments.d.ts +34 -32
  58. package/dist/types/Stackable.d.ts +106 -101
  59. package/dist/types/UtilityTypes.d.ts +5 -3
  60. package/dist/types/ValidateSession.d.ts +19 -17
  61. package/dist/types/ValidationError.d.ts +9 -7
  62. package/dist/types/ValidationRules.d.ts +96 -93
  63. package/dist/types/Validations.d.ts +109 -98
  64. package/dist/types/Vouchers.d.ts +452 -364
  65. package/dist/types/index.d.ts +27 -25
  66. package/dist/voucherifysdk.cjs +2023 -0
  67. package/dist/voucherifysdk.cjs.map +1 -0
  68. package/dist/voucherifysdk.esm.js +981 -1256
  69. package/dist/voucherifysdk.esm.js.map +1 -1
  70. package/package.json +13 -9
  71. package/CHANGELOG.md +0 -663
  72. package/dist/voucherifysdk.umd.development.js +0 -2270
  73. package/dist/voucherifysdk.umd.development.js.map +0 -1
  74. package/dist/voucherifysdk.umd.production.min.js +0 -2
  75. package/dist/voucherifysdk.umd.production.min.js.map +0 -1
@@ -1,86 +1,92 @@
1
- import { CustomerRequest } from './Customers';
2
- import { Junction } from './Exports';
3
- import { Order, OrderCalculated } from './Orders';
4
- import { ApplicableToResultList, InapplicableToResultList } from './ApplicableTo';
5
- import { Category } from './Categories';
6
- import { Discount } from './DiscountVoucher';
7
- import { LoyaltiesTransferPoints } from './Loyalties';
8
- import { ValidationRulesAssignmentsList } from './ValidationRules';
9
- export declare type QualificationsCheckEligibilityRequestBody = {
10
- customer?: CustomerRequest;
11
- order?: Order;
12
- mode?: 'BASIC' | 'ADVANCED';
13
- tracking_id?: string;
14
- scenario?: 'ALL' | 'CUSTOMER_WALLET' | 'AUDIENCE_ONLY' | 'PRODUCTS' | 'PRODUCTS_DISCOUNT' | 'PROMOTION_STACKS' | 'PRODUCTS_BY_CUSTOMER' | 'PRODUCTS_DISCOUNT_BY_CUSTOMER';
15
- options?: {
16
- limit?: number;
17
- starting_after?: string;
18
- filters?: {
19
- junction?: Junction;
20
- } & Partial<Record<QualificationsFiltersFields, QualificationsFieldConditions>>;
21
- expand?: ('redeemable' | 'category' | 'validation_rules')[];
22
- sorting_rule?: 'BEST_DEAL' | 'LEAST_DEAL' | 'DEFAULT';
23
- };
24
- metadata?: Record<string, any>;
25
- };
26
- export declare type QualificationsCheckEligibilityResponseBody = {
27
- redeemables: QualificationsRedeemableList;
28
- tracking_id?: string;
29
- order?: OrderCalculated;
30
- stacking_rules: QualificationsStackingRules;
31
- };
32
- export declare type QualificationsFiltersFields = 'category_id' | 'campaign_id' | 'resource_id' | 'resource_type' | 'voucher_type' | 'code';
33
- export declare type QualificationsFiltersCondition = '$in' | '$not_in' | '$is' | '$is_not' | '$has_value' | '$is_unknown';
34
- export declare type QualificationsFieldConditions = {
35
- conditions?: Partial<Record<QualificationsFiltersCondition, any>>;
36
- };
37
- export declare type QualificationsRedeemableList = {
38
- object: 'list';
39
- data_ref: 'data';
40
- data: QualificationsRedeemable[];
41
- total: number;
42
- has_more: boolean;
43
- more_starting_after?: string;
44
- };
45
- export declare type QualificationsStackingRules = {
46
- redeemables_limit: number;
47
- applicable_redeemables_limit: number;
48
- applicable_exclusive_redeemables_limit: number;
49
- exclusive_categories: string[];
50
- joint_categories: string[];
51
- };
52
- export declare type QualificationsRedeemable = QualificationsRedeemableBase & {
53
- redeemables?: QualificationsRedeemableBase[];
54
- };
55
- export declare type QualificationsRedeemableBase = {
56
- id: string;
57
- object: 'campaign' | 'promotion_tier' | 'promotion_stack' | 'voucher';
58
- created_at: string;
59
- result: RedeemableResult;
60
- order?: OrderCalculated;
61
- validation_rule_id?: string;
62
- applicable_to: ApplicableToResultList;
63
- inapplicable_to: InapplicableToResultList;
64
- metadata: Record<string, unknown> | null;
65
- categories: Category[];
66
- banner?: string;
67
- name?: string;
68
- campaign_name?: string;
69
- campaign_id?: string;
70
- validation_rules_assignments?: ValidationRulesAssignmentsList;
71
- };
72
- export declare type RedeemableResult = {
73
- discount?: Discount;
74
- gift?: {
75
- balance: number;
76
- credits: number;
77
- };
78
- loyalty_card?: {
79
- points?: number;
80
- balance?: number;
81
- exchange_ratio?: number;
82
- points_ratio?: number;
83
- transfers?: LoyaltiesTransferPoints[];
84
- };
85
- error?: Error;
86
- };
1
+ import { CustomerRequest } from './Customers.js';
2
+ import { Junction } from './Exports.js';
3
+ import { Order, OrderCalculated } from './Orders.js';
4
+ import { ApplicableToResultList, InapplicableToResultList } from './ApplicableTo.js';
5
+ import { Category } from './Categories.js';
6
+ import { Discount } from './DiscountVoucher.js';
7
+ import { LoyaltiesTransferPoints } from './Loyalties.js';
8
+ import { ValidationRulesAssignmentsList } from './ValidationRules.js';
9
+ import './Products.js';
10
+ import './Vouchers.js';
11
+ import './Rewards.js';
12
+
13
+ type QualificationsCheckEligibilityRequestBody = {
14
+ customer?: CustomerRequest;
15
+ order?: Order;
16
+ mode?: 'BASIC' | 'ADVANCED';
17
+ tracking_id?: string;
18
+ scenario?: 'ALL' | 'CUSTOMER_WALLET' | 'AUDIENCE_ONLY' | 'PRODUCTS' | 'PRODUCTS_DISCOUNT' | 'PROMOTION_STACKS' | 'PRODUCTS_BY_CUSTOMER' | 'PRODUCTS_DISCOUNT_BY_CUSTOMER';
19
+ options?: {
20
+ limit?: number;
21
+ starting_after?: string;
22
+ filters?: {
23
+ junction?: Junction;
24
+ } & Partial<Record<QualificationsFiltersFields, QualificationsFieldConditions>>;
25
+ expand?: ('redeemable' | 'category' | 'validation_rules')[];
26
+ sorting_rule?: 'BEST_DEAL' | 'LEAST_DEAL' | 'DEFAULT';
27
+ };
28
+ metadata?: Record<string, any>;
29
+ };
30
+ type QualificationsCheckEligibilityResponseBody = {
31
+ redeemables: QualificationsRedeemableList;
32
+ tracking_id?: string;
33
+ order?: OrderCalculated;
34
+ stacking_rules: QualificationsStackingRules;
35
+ };
36
+ type QualificationsFiltersFields = 'category_id' | 'campaign_id' | 'resource_id' | 'resource_type' | 'voucher_type' | 'code';
37
+ type QualificationsFiltersCondition = '$in' | '$not_in' | '$is' | '$is_not' | '$has_value' | '$is_unknown';
38
+ type QualificationsFieldConditions = {
39
+ conditions?: Partial<Record<QualificationsFiltersCondition, any>>;
40
+ };
41
+ type QualificationsRedeemableList = {
42
+ object: 'list';
43
+ data_ref: 'data';
44
+ data: QualificationsRedeemable[];
45
+ total: number;
46
+ has_more: boolean;
47
+ more_starting_after?: string;
48
+ };
49
+ type QualificationsStackingRules = {
50
+ redeemables_limit: number;
51
+ applicable_redeemables_limit: number;
52
+ applicable_exclusive_redeemables_limit: number;
53
+ exclusive_categories: string[];
54
+ joint_categories: string[];
55
+ };
56
+ type QualificationsRedeemable = QualificationsRedeemableBase & {
57
+ redeemables?: QualificationsRedeemableBase[];
58
+ };
59
+ type QualificationsRedeemableBase = {
60
+ id: string;
61
+ object: 'campaign' | 'promotion_tier' | 'promotion_stack' | 'voucher';
62
+ created_at: string;
63
+ result: RedeemableResult;
64
+ order?: OrderCalculated;
65
+ validation_rule_id?: string;
66
+ applicable_to: ApplicableToResultList;
67
+ inapplicable_to: InapplicableToResultList;
68
+ metadata: Record<string, unknown> | null;
69
+ categories: Category[];
70
+ banner?: string;
71
+ name?: string;
72
+ campaign_name?: string;
73
+ campaign_id?: string;
74
+ validation_rules_assignments?: ValidationRulesAssignmentsList;
75
+ };
76
+ type RedeemableResult = {
77
+ discount?: Discount;
78
+ gift?: {
79
+ balance: number;
80
+ credits: number;
81
+ };
82
+ loyalty_card?: {
83
+ points?: number;
84
+ balance?: number;
85
+ exchange_ratio?: number;
86
+ points_ratio?: number;
87
+ transfers?: LoyaltiesTransferPoints[];
88
+ };
89
+ error?: Error;
90
+ };
91
+
92
+ export type { QualificationsCheckEligibilityRequestBody, QualificationsCheckEligibilityResponseBody, QualificationsFieldConditions, QualificationsFiltersCondition, QualificationsFiltersFields, QualificationsRedeemable, QualificationsRedeemableBase, QualificationsRedeemableList, QualificationsStackingRules, RedeemableResult };
@@ -1,205 +1,215 @@
1
- import { OrdersCreateResponse, OrdersCreate } from './Orders';
2
- import { RewardsCreateResponse, RewardRedemptionParams } from './Rewards';
3
- import { CustomersCreateBody, SimpleCustomer } from './Customers';
4
- import { VouchersResponse } from './Vouchers';
5
- import { GiftRedemptionParams } from './Gift';
6
- import { ValidationSessionParams, ValidationSessionReleaseParams } from './ValidateSession';
7
- import { StackableOptions, StackableRedeemableInapplicableResponse, StackableRedeemableParams, StackableRedeemableSkippedResponse } from './Stackable';
8
- import { PromotionTierRedeemDetailsSimple, PromotionTierRedeemDetails } from './PromotionTiers';
9
- export interface RedemptionsRedeemBody {
10
- tracking_id?: string;
11
- customer?: Omit<SimpleCustomer, 'id'> & {
12
- description?: string;
13
- id?: string;
14
- };
15
- order?: Pick<Partial<OrdersCreateResponse>, 'id' | 'source_id' | 'amount' | 'items' | 'status' | 'metadata'>;
16
- metadata?: Record<string, any>;
17
- reward?: RewardRedemptionParams;
18
- gift?: GiftRedemptionParams;
19
- session?: ValidationSessionReleaseParams;
20
- }
21
- export interface RedemptionsRedeemResponse {
22
- id: string;
23
- object: 'redemption';
24
- date?: string;
25
- customer_id?: string;
26
- tracking_id?: string;
27
- order?: OrdersCreateResponse;
28
- metadata?: Record<string, any>;
29
- result: 'SUCCESS' | 'FAILURE';
30
- voucher: VouchersResponse;
31
- customer?: SimpleCustomer;
32
- reward?: RewardsCreateResponse;
33
- related_object_type: 'voucher';
34
- gift?: {
35
- amount: number;
36
- };
37
- loyalty_card?: {
38
- points: number;
39
- };
40
- promotion_tier?: PromotionTierRedeemDetailsSimple | PromotionTierRedeemDetails;
41
- failure_code?: string;
42
- failure_message?: string;
43
- }
44
- export interface RedemptionsListParams {
45
- limit?: number;
46
- page?: number;
47
- result?: 'SUCCESS' | 'FAILURE';
48
- campaign?: string;
49
- customer?: string;
50
- created_at?: {
51
- before?: string;
52
- after?: string;
53
- };
54
- }
55
- export interface Redemption {
56
- id: string;
57
- object: 'redemption';
58
- date?: string;
59
- customer_id?: string;
60
- tracking_id?: string;
61
- order?: Omit<OrdersCreateResponse, 'object'> & {
62
- related_object_id: string;
63
- related_object_type: 'redemption';
64
- referrer?: string;
65
- };
66
- metadata?: Record<string, any>;
67
- result: 'SUCCESS' | 'FAILURE';
68
- failure_code?: string;
69
- failure_message?: string;
70
- customer?: SimpleCustomer;
71
- related_object_type?: 'string';
72
- voucher?: {
73
- code: string;
74
- campaign?: string;
75
- id: string;
76
- object: 'voucher';
77
- campaign_id?: string;
78
- };
79
- gift?: {
80
- amount: number;
81
- };
82
- loyalty_card?: {
83
- points: number;
84
- };
85
- }
86
- export interface RedemptionsListResponse {
87
- object: 'list';
88
- total: number;
89
- data_ref: 'redemptions';
90
- redemptions: (Redemption | SimpleRollback)[];
91
- }
92
- export interface RedemptionsGetForVoucherResponse {
93
- object: 'list';
94
- total: number;
95
- data_ref: string;
96
- quantity: number;
97
- redeemed_quantity?: number;
98
- redeemed_amount?: number;
99
- redemption_entries?: (Redemption | SimpleRollback)[];
100
- }
101
- export interface RedemptionsRollbackParams {
102
- reason?: string;
103
- tracking_id?: string;
104
- customer?: SimpleCustomer & {
105
- description?: string;
106
- };
107
- }
108
- export interface RedemptionsRollbackQueryParams {
109
- reason?: string;
110
- tracking_id?: string;
111
- }
112
- export interface RedemptionsRollbackPayload {
113
- customer?: SimpleCustomer & {
114
- description?: string;
115
- };
116
- }
117
- export interface RedemptionsRollbackResponse {
118
- id: string;
119
- object: 'redemption_rollback';
120
- date?: string;
121
- customer_id?: string;
122
- tracking_id?: string;
123
- redemption?: string;
124
- amount?: number;
125
- reason?: string;
126
- result: 'SUCCESS' | 'FAILURE';
127
- voucher?: VouchersResponse;
128
- customer?: SimpleCustomer;
129
- reward?: {
130
- assignment_id: string;
131
- object: 'reward';
132
- };
133
- }
134
- export declare type SimpleRollback = Pick<RedemptionsRollbackResponse, 'id' | 'object' | 'date' | 'customer_id' | 'tracking_id' | 'redemption' | 'result' | 'customer'> & {
135
- related_object_type: 'voucher';
136
- voucher: {
137
- id: string;
138
- object: 'voucher';
139
- code: string;
140
- campaign?: string;
141
- campaign_id?: string;
142
- };
143
- gift?: {
144
- amount: number;
145
- };
146
- loyalty_card?: {
147
- points: number;
148
- };
149
- };
150
- export interface RedemptionsRedeemStackableParams {
151
- options?: StackableOptions;
152
- redeemables: StackableRedeemableParams[];
153
- session?: ValidationSessionParams;
154
- order?: OrdersCreate;
155
- customer?: CustomersCreateBody;
156
- metadata?: Record<string, any>;
157
- }
158
- export declare type RedemptionsRedeemStackableRedemptionResult = RedemptionsRedeemResponse & {
159
- redemption: string;
160
- };
161
- export declare type RedemptionsRedeemStackableOrderResponse = OrdersCreateResponse & {
162
- redemptions?: Record<string, {
163
- date: string;
164
- rollback_id?: string;
165
- rollback_date?: string;
166
- related_object_type: 'redemption';
167
- related_object_id: string;
168
- stacked: string[];
169
- rollback_stacked?: string[];
170
- }>;
171
- };
172
- export interface RedemptionsRedeemStackableResponse {
173
- redemptions: RedemptionsRedeemStackableRedemptionResult[];
174
- parent_redemption: {
175
- id: string;
176
- object: 'redemption';
177
- date: string;
178
- customer_id?: string;
179
- tracking_id?: string;
180
- metadata?: Record<string, any>;
181
- result: 'SUCCESS' | 'FAILURE';
182
- order?: RedemptionsRedeemStackableOrderResponse;
183
- customer?: SimpleCustomer;
184
- related_object_type: 'redemption';
185
- related_object_id: string;
186
- };
187
- order?: RedemptionsRedeemStackableOrderResponse;
188
- skipped_redeemables?: StackableRedeemableSkippedResponse;
189
- inapplicable_redeemables?: StackableRedeemableInapplicableResponse;
190
- }
191
- export interface RedemptionsRollbackStackableResponse {
192
- rollbacks: RedemptionsRedeemStackableRedemptionResult[];
193
- parent_rollback: {
194
- id: string;
195
- date: string;
196
- customer_id?: string;
197
- tracking_id?: string;
198
- metadata?: Record<string, any>;
199
- result: 'SUCCESS' | 'FAILURE';
200
- order?: OrdersCreateResponse;
201
- customer?: SimpleCustomer;
202
- redemption: string;
203
- };
204
- order?: RedemptionsRedeemStackableOrderResponse;
205
- }
1
+ import { OrdersCreate, OrdersCreateResponse } from './Orders.js';
2
+ import { RewardsCreateResponse, RewardRedemptionParams } from './Rewards.js';
3
+ import { CustomersCreateBody, SimpleCustomer } from './Customers.js';
4
+ import { VouchersResponse } from './Vouchers.js';
5
+ import { GiftRedemptionParams } from './Gift.js';
6
+ import { ValidationSessionParams, ValidationSessionReleaseParams } from './ValidateSession.js';
7
+ import { StackableOptions, StackableRedeemableParams, StackableRedeemableSkippedResponse, StackableRedeemableInapplicableResponse } from './Stackable.js';
8
+ import { PromotionTierRedeemDetailsSimple, PromotionTierRedeemDetails } from './PromotionTiers.js';
9
+ import './DiscountVoucher.js';
10
+ import './ApplicableTo.js';
11
+ import './Products.js';
12
+ import './Loyalties.js';
13
+ import './ValidationRules.js';
14
+ import './Categories.js';
15
+ import './ValidationError.js';
16
+
17
+ interface RedemptionsRedeemBody {
18
+ tracking_id?: string;
19
+ customer?: Omit<SimpleCustomer, 'id'> & {
20
+ description?: string;
21
+ id?: string;
22
+ };
23
+ order?: Pick<Partial<OrdersCreateResponse>, 'id' | 'source_id' | 'amount' | 'items' | 'status' | 'metadata'>;
24
+ metadata?: Record<string, any>;
25
+ reward?: RewardRedemptionParams;
26
+ gift?: GiftRedemptionParams;
27
+ session?: ValidationSessionReleaseParams;
28
+ }
29
+ interface RedemptionsRedeemResponse {
30
+ id: string;
31
+ object: 'redemption';
32
+ date?: string;
33
+ customer_id?: string;
34
+ tracking_id?: string;
35
+ order?: OrdersCreateResponse;
36
+ metadata?: Record<string, any>;
37
+ result: 'SUCCESS' | 'FAILURE';
38
+ voucher: VouchersResponse;
39
+ customer?: SimpleCustomer;
40
+ reward?: RewardsCreateResponse;
41
+ related_object_type: 'voucher';
42
+ gift?: {
43
+ amount: number;
44
+ };
45
+ loyalty_card?: {
46
+ points: number;
47
+ };
48
+ promotion_tier?: PromotionTierRedeemDetailsSimple | PromotionTierRedeemDetails;
49
+ failure_code?: string;
50
+ failure_message?: string;
51
+ }
52
+ interface RedemptionsListParams {
53
+ limit?: number;
54
+ page?: number;
55
+ result?: 'SUCCESS' | 'FAILURE';
56
+ campaign?: string;
57
+ customer?: string;
58
+ created_at?: {
59
+ before?: string;
60
+ after?: string;
61
+ };
62
+ }
63
+ interface Redemption {
64
+ id: string;
65
+ object: 'redemption';
66
+ date?: string;
67
+ customer_id?: string;
68
+ tracking_id?: string;
69
+ order?: Omit<OrdersCreateResponse, 'object'> & {
70
+ related_object_id: string;
71
+ related_object_type: 'redemption';
72
+ referrer?: string;
73
+ };
74
+ metadata?: Record<string, any>;
75
+ result: 'SUCCESS' | 'FAILURE';
76
+ failure_code?: string;
77
+ failure_message?: string;
78
+ customer?: SimpleCustomer;
79
+ related_object_type?: 'string';
80
+ voucher?: {
81
+ code: string;
82
+ campaign?: string;
83
+ id: string;
84
+ object: 'voucher';
85
+ campaign_id?: string;
86
+ };
87
+ gift?: {
88
+ amount: number;
89
+ };
90
+ loyalty_card?: {
91
+ points: number;
92
+ };
93
+ }
94
+ interface RedemptionsListResponse {
95
+ object: 'list';
96
+ total: number;
97
+ data_ref: 'redemptions';
98
+ redemptions: (Redemption | SimpleRollback)[];
99
+ }
100
+ interface RedemptionsGetForVoucherResponse {
101
+ object: 'list';
102
+ total: number;
103
+ data_ref: string;
104
+ quantity: number;
105
+ redeemed_quantity?: number;
106
+ redeemed_amount?: number;
107
+ redemption_entries?: (Redemption | SimpleRollback)[];
108
+ }
109
+ interface RedemptionsRollbackParams {
110
+ reason?: string;
111
+ tracking_id?: string;
112
+ customer?: SimpleCustomer & {
113
+ description?: string;
114
+ };
115
+ }
116
+ interface RedemptionsRollbackQueryParams {
117
+ reason?: string;
118
+ tracking_id?: string;
119
+ }
120
+ interface RedemptionsRollbackPayload {
121
+ customer?: SimpleCustomer & {
122
+ description?: string;
123
+ };
124
+ }
125
+ interface RedemptionsRollbackResponse {
126
+ id: string;
127
+ object: 'redemption_rollback';
128
+ date?: string;
129
+ customer_id?: string;
130
+ tracking_id?: string;
131
+ redemption?: string;
132
+ amount?: number;
133
+ reason?: string;
134
+ result: 'SUCCESS' | 'FAILURE';
135
+ voucher?: VouchersResponse;
136
+ customer?: SimpleCustomer;
137
+ reward?: {
138
+ assignment_id: string;
139
+ object: 'reward';
140
+ };
141
+ }
142
+ type SimpleRollback = Pick<RedemptionsRollbackResponse, 'id' | 'object' | 'date' | 'customer_id' | 'tracking_id' | 'redemption' | 'result' | 'customer'> & {
143
+ related_object_type: 'voucher';
144
+ voucher: {
145
+ id: string;
146
+ object: 'voucher';
147
+ code: string;
148
+ campaign?: string;
149
+ campaign_id?: string;
150
+ };
151
+ gift?: {
152
+ amount: number;
153
+ };
154
+ loyalty_card?: {
155
+ points: number;
156
+ };
157
+ };
158
+ interface RedemptionsRedeemStackableParams {
159
+ options?: StackableOptions;
160
+ redeemables: StackableRedeemableParams[];
161
+ session?: ValidationSessionParams;
162
+ order?: OrdersCreate;
163
+ customer?: CustomersCreateBody;
164
+ metadata?: Record<string, any>;
165
+ }
166
+ type RedemptionsRedeemStackableRedemptionResult = RedemptionsRedeemResponse & {
167
+ redemption: string;
168
+ };
169
+ type RedemptionsRedeemStackableOrderResponse = OrdersCreateResponse & {
170
+ redemptions?: Record<string, {
171
+ date: string;
172
+ rollback_id?: string;
173
+ rollback_date?: string;
174
+ related_object_type: 'redemption';
175
+ related_object_id: string;
176
+ stacked: string[];
177
+ rollback_stacked?: string[];
178
+ }>;
179
+ };
180
+ interface RedemptionsRedeemStackableResponse {
181
+ redemptions: RedemptionsRedeemStackableRedemptionResult[];
182
+ parent_redemption: {
183
+ id: string;
184
+ object: 'redemption';
185
+ date: string;
186
+ customer_id?: string;
187
+ tracking_id?: string;
188
+ metadata?: Record<string, any>;
189
+ result: 'SUCCESS' | 'FAILURE';
190
+ order?: RedemptionsRedeemStackableOrderResponse;
191
+ customer?: SimpleCustomer;
192
+ related_object_type: 'redemption';
193
+ related_object_id: string;
194
+ };
195
+ order?: RedemptionsRedeemStackableOrderResponse;
196
+ skipped_redeemables?: StackableRedeemableSkippedResponse;
197
+ inapplicable_redeemables?: StackableRedeemableInapplicableResponse;
198
+ }
199
+ interface RedemptionsRollbackStackableResponse {
200
+ rollbacks: RedemptionsRedeemStackableRedemptionResult[];
201
+ parent_rollback: {
202
+ id: string;
203
+ date: string;
204
+ customer_id?: string;
205
+ tracking_id?: string;
206
+ metadata?: Record<string, any>;
207
+ result: 'SUCCESS' | 'FAILURE';
208
+ order?: OrdersCreateResponse;
209
+ customer?: SimpleCustomer;
210
+ redemption: string;
211
+ };
212
+ order?: RedemptionsRedeemStackableOrderResponse;
213
+ }
214
+
215
+ export type { Redemption, RedemptionsGetForVoucherResponse, RedemptionsListParams, RedemptionsListResponse, RedemptionsRedeemBody, RedemptionsRedeemResponse, RedemptionsRedeemStackableOrderResponse, RedemptionsRedeemStackableParams, RedemptionsRedeemStackableRedemptionResult, RedemptionsRedeemStackableResponse, RedemptionsRollbackParams, RedemptionsRollbackPayload, RedemptionsRollbackQueryParams, RedemptionsRollbackResponse, RedemptionsRollbackStackableResponse, SimpleRollback };