@voucherify/sdk 2.9.3 → 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 (72) hide show
  1. package/dist/ApiLimitsHandler.d.ts +13 -0
  2. package/dist/AsyncActions.d.ts +17 -0
  3. package/dist/Balance.d.ts +15 -0
  4. package/dist/Campaigns.d.ts +66 -0
  5. package/dist/Categories.d.ts +29 -0
  6. package/dist/ClientSide.d.ts +77 -0
  7. package/dist/Consents.d.ts +13 -0
  8. package/dist/Customers.d.ts +75 -0
  9. package/dist/Distributions.d.ts +29 -0
  10. package/dist/Events.d.ts +15 -0
  11. package/dist/Exports.d.ts +25 -0
  12. package/dist/Loyalties.d.ts +171 -0
  13. package/dist/MetadataSchemas.d.ts +17 -0
  14. package/dist/Orders.d.ts +32 -0
  15. package/dist/ProductCollections.d.ts +30 -0
  16. package/dist/Products.d.ts +66 -0
  17. package/dist/PromotionTiers.d.ts +43 -0
  18. package/dist/Promotions.d.ts +30 -0
  19. package/dist/PromotionsStacks.d.ts +34 -0
  20. package/dist/Qualifications.d.ts +24 -0
  21. package/dist/Redemptions.d.ts +53 -0
  22. package/dist/RequestController.d.ts +31 -0
  23. package/dist/Rewards.d.ts +46 -0
  24. package/dist/Segments.d.ts +25 -0
  25. package/dist/ValidationRules.d.ts +47 -0
  26. package/dist/Validations.d.ts +39 -0
  27. package/dist/VoucherifyClientSide.d.ts +112 -0
  28. package/dist/VoucherifyError.d.ts +23 -0
  29. package/dist/VoucherifyServerSide.d.ts +170 -0
  30. package/dist/Vouchers.d.ts +84 -0
  31. package/dist/helpers.d.ts +20 -0
  32. package/dist/index.d.ts +63 -0
  33. package/dist/types/ApplicableTo.d.ts +32 -0
  34. package/dist/types/AsyncActions.d.ts +23 -0
  35. package/dist/types/Balance.d.ts +18 -0
  36. package/dist/types/Campaigns.d.ts +124 -0
  37. package/dist/types/Categories.d.ts +40 -0
  38. package/dist/types/ClientSide.d.ts +145 -0
  39. package/dist/types/Consents.d.ts +34 -0
  40. package/dist/types/Customers.d.ts +363 -0
  41. package/dist/types/DiscountVoucher.d.ts +94 -0
  42. package/dist/types/Distributions.d.ts +148 -0
  43. package/dist/types/Events.d.ts +21 -0
  44. package/dist/types/Exports.d.ts +151 -0
  45. package/dist/types/Gift.d.ts +5 -0
  46. package/dist/types/Loyalties.d.ts +1061 -0
  47. package/dist/types/MetadataSchemas.d.ts +34 -0
  48. package/dist/types/Orders.d.ts +199 -0
  49. package/dist/types/ProductCollections.d.ts +99 -0
  50. package/dist/types/Products.d.ts +108 -0
  51. package/dist/types/PromotionTiers.d.ts +131 -0
  52. package/dist/types/Promotions.d.ts +113 -0
  53. package/dist/types/PromotionsStacks.d.ts +74 -0
  54. package/dist/types/Qualifications.d.ts +92 -0
  55. package/dist/types/Redemptions.d.ts +215 -0
  56. package/dist/types/Rewards.d.ts +220 -0
  57. package/dist/types/Segments.d.ts +34 -0
  58. package/dist/types/Stackable.d.ts +106 -0
  59. package/dist/types/UtilityTypes.d.ts +5 -0
  60. package/dist/types/ValidateSession.d.ts +19 -0
  61. package/dist/types/ValidationError.d.ts +9 -0
  62. package/dist/types/ValidationRules.d.ts +96 -0
  63. package/dist/types/Validations.d.ts +109 -0
  64. package/dist/types/Vouchers.d.ts +452 -0
  65. package/dist/types/index.d.ts +27 -0
  66. package/dist/voucherifysdk.cjs +2022 -1
  67. package/dist/voucherifysdk.cjs.map +1 -1
  68. package/dist/voucherifysdk.esm.js +1985 -1
  69. package/dist/voucherifysdk.esm.js.map +1 -1
  70. package/package.json +2 -2
  71. package/dist/voucherifysdk.d.mts +0 -5252
  72. package/dist/voucherifysdk.d.ts +0 -5252
@@ -0,0 +1,74 @@
1
+ import { Category } from './Categories.js';
2
+
3
+ interface PromotionsStacksListInCampaignResponseBody {
4
+ object: 'list';
5
+ data_ref: 'data';
6
+ data: PromotionStack[];
7
+ total: number;
8
+ }
9
+ interface PromotionsStacksListResponseBody {
10
+ object: 'list';
11
+ data_ref: 'data';
12
+ data: PromotionStack[];
13
+ total: number;
14
+ }
15
+ interface PromotionsStacksListRequestQuery {
16
+ limit?: number;
17
+ page?: number;
18
+ order?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' | 'name' | '-name';
19
+ created_at?: {
20
+ before?: string;
21
+ after?: string;
22
+ };
23
+ updated_at?: {
24
+ before?: string;
25
+ after?: string;
26
+ };
27
+ }
28
+ type PromotionsStacksGetResponseBody = PromotionStack;
29
+ type PromotionsStacksUpdateRequestBody = {
30
+ name: string;
31
+ tiers?: {
32
+ ids?: string[];
33
+ hierarchy_mode?: 'MANUAL';
34
+ };
35
+ category_id?: string;
36
+ };
37
+ type PromotionsStacksUpdateResponseBody = PromotionStackBase & {
38
+ id: string;
39
+ created_at: string;
40
+ updated_at: string;
41
+ campaign_id: string;
42
+ object: 'promotion_stack';
43
+ category_id: string | null;
44
+ categories: Category[];
45
+ };
46
+ type PromotionsStacksCreateInCampaignRequestBody = PromotionStackBase & {
47
+ category_id?: string;
48
+ };
49
+ type PromotionsStacksCreateInCampaignResponseBody = PromotionStackBase & {
50
+ id: string;
51
+ created_at: string;
52
+ campaign_id: string;
53
+ object: 'promotion_stack';
54
+ category_id: string | null;
55
+ categories: Category[];
56
+ };
57
+ interface PromotionStackBase {
58
+ name: string;
59
+ tiers: {
60
+ ids: string[];
61
+ hierarchy_mode?: 'MANUAL';
62
+ };
63
+ }
64
+ type PromotionStack = PromotionStackBase & {
65
+ id: string;
66
+ created_at: string;
67
+ updated_at?: string;
68
+ campaign_id: string;
69
+ object: 'promotion_stack';
70
+ category_id: string | null;
71
+ categories: Category[];
72
+ };
73
+
74
+ export type { PromotionStack, PromotionStackBase, PromotionsStacksCreateInCampaignRequestBody, PromotionsStacksCreateInCampaignResponseBody, PromotionsStacksGetResponseBody, PromotionsStacksListInCampaignResponseBody, PromotionsStacksListRequestQuery, PromotionsStacksListResponseBody, PromotionsStacksUpdateRequestBody, PromotionsStacksUpdateResponseBody };
@@ -0,0 +1,92 @@
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 };
@@ -0,0 +1,215 @@
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 };
@@ -0,0 +1,220 @@
1
+ interface RewardsListParams {
2
+ page?: number;
3
+ limit?: number;
4
+ }
5
+ interface RewardsResponse {
6
+ id: string;
7
+ name?: string;
8
+ stock?: number;
9
+ redeemed?: number;
10
+ attributes?: {
11
+ image_url?: string;
12
+ description?: string;
13
+ };
14
+ created_at: string;
15
+ updated_at?: string;
16
+ object: 'reward';
17
+ }
18
+ type RewardsCreateResponse = RewardsResponse & RewardsTypeResponse;
19
+ type RewardsGetResponse = RewardsResponse & RewardsTypeResponse;
20
+ interface RewardsListResponse {
21
+ object: 'list';
22
+ total: number;
23
+ data_ref: 'data';
24
+ data: RewardsCreateResponse[];
25
+ }
26
+ interface Rewards {
27
+ name: string;
28
+ stock?: number;
29
+ attributes?: {
30
+ image_url?: string;
31
+ description?: string;
32
+ };
33
+ }
34
+ interface RewardsTypeMaterial {
35
+ type?: 'MATERIAL';
36
+ parameters: {
37
+ product?: {
38
+ id?: string;
39
+ sku?: string;
40
+ };
41
+ };
42
+ }
43
+ interface RewardsTypeCampaign {
44
+ type?: 'CAMPAIGN';
45
+ parameters: {
46
+ campaign?: {
47
+ id: string;
48
+ balance?: number;
49
+ };
50
+ };
51
+ }
52
+ interface RewardsTypeCampaignResponse {
53
+ type?: 'CAMPAIGN';
54
+ parameters: {
55
+ campaign?: {
56
+ id: string;
57
+ balance?: number;
58
+ type?: 'DISCOUNT_COUPONS' | 'PROMOTION' | 'GIFT_VOUCHERS' | 'REFERRAL_PROGRAM';
59
+ };
60
+ };
61
+ }
62
+ interface RewardsTypeCoin {
63
+ type?: 'COIN';
64
+ parameters: {
65
+ coin?: {
66
+ exchange_ratio?: number;
67
+ };
68
+ };
69
+ }
70
+ type RewardsType = RewardsTypeCampaign | RewardsTypeCoin | RewardsTypeMaterial;
71
+ type RewardsTypeResponse = Required<RewardsTypeCampaignResponse> | Required<RewardsTypeCoin> | Required<RewardsTypeMaterial>;
72
+ type RewardsCreate = Rewards & RewardsType;
73
+ type RewardsUpdate = Omit<RewardsCreate, 'type'> & {
74
+ id: string;
75
+ };
76
+ type RewardsUpdateResponse = RewardsCreateResponse;
77
+ interface RewardsAssignmentObject {
78
+ id: string;
79
+ reward_id: string;
80
+ related_object_id?: string;
81
+ related_object_type?: string;
82
+ parameters?: {
83
+ loyalty?: {
84
+ points: number;
85
+ };
86
+ };
87
+ created_at: string;
88
+ updated_at?: string;
89
+ object: 'reward_assignment';
90
+ }
91
+ interface RewardsListAssignmentsParams {
92
+ limit?: number;
93
+ page?: number;
94
+ }
95
+ interface RewardsListAssignmentsResponse {
96
+ total: number;
97
+ data: RewardsAssignmentObject[];
98
+ object: 'list';
99
+ data_ref: 'data';
100
+ }
101
+ interface RewardsCreateAssignment {
102
+ campaign?: string;
103
+ parameters?: {
104
+ loyalty?: {
105
+ points: number;
106
+ };
107
+ };
108
+ }
109
+ type RewardsCreateAssignmentResponse = RewardsAssignmentObject;
110
+ type RewardsUpdateAssignment = RewardsCreateAssignment & {
111
+ id: string;
112
+ };
113
+ type RewardsUpdateAssignmentResponse = RewardsAssignmentObject;
114
+ interface RewardRedemptionParams {
115
+ points?: number;
116
+ assignment_id?: string;
117
+ id?: string;
118
+ }
119
+ type Reward = {
120
+ id: string;
121
+ name?: string;
122
+ stock?: string;
123
+ redeemed?: string;
124
+ attributes?: {
125
+ image_url?: string;
126
+ description?: string;
127
+ };
128
+ created_at: string;
129
+ updated_at?: string;
130
+ object: 'reward';
131
+ } & RewardType;
132
+ interface RewardTypeCampaign {
133
+ type: 'CAMPAIGN';
134
+ parameters: {
135
+ campaign: {
136
+ id: string;
137
+ balance?: number;
138
+ type: 'DISCOUNT_COUPONS' | 'PROMOTION' | 'GIFT_VOUCHERS' | 'REFERRAL_PROGRAM';
139
+ };
140
+ };
141
+ }
142
+ interface RewardTypeCoin {
143
+ type: 'COIN';
144
+ parameters: {
145
+ coin: {
146
+ exchange_ratio: number;
147
+ points_ratio?: number;
148
+ };
149
+ };
150
+ }
151
+ interface RewardTypeMaterial {
152
+ type: 'MATERIAL';
153
+ parameters: {
154
+ product: {
155
+ id: string;
156
+ sku: string | null;
157
+ };
158
+ };
159
+ }
160
+ type RewardType = RewardTypeCampaign | RewardTypeCoin | RewardTypeMaterial;
161
+ type RewardAssignment = RewardsAssignmentCoinReward | RewardsAssignmentCampaignOrMaterialReward;
162
+ interface RewardsAssignmentCoinReward {
163
+ id: string;
164
+ reward_id: string;
165
+ related_object_id: string;
166
+ related_object_type: 'campaign';
167
+ created_at: string;
168
+ updated_at: string | null;
169
+ object: 'reward-assignment';
170
+ }
171
+ interface RewardsAssignmentCampaignOrMaterialReward {
172
+ id: string;
173
+ reward_id: string;
174
+ related_object_id: string;
175
+ related_object_type: 'campaign';
176
+ created_at: string;
177
+ updated_at: string | null;
178
+ object: 'reward-assignment';
179
+ parameters: {
180
+ loyalty: {
181
+ points?: number;
182
+ };
183
+ };
184
+ }
185
+ type RewardsGetAssignmentResponseBody = RewardAssignment;
186
+ interface RewardsListAssignmentsRequestQuery {
187
+ limit?: number;
188
+ page?: number;
189
+ }
190
+ interface RewardsListAssignmentsResponseBody {
191
+ object: 'list';
192
+ data_ref: 'data';
193
+ data: RewardAssignment[];
194
+ total: number;
195
+ }
196
+ type RewardsCreateAssignmentRequestBody = RewardsCreateAssignmentCoinRewardRequestBody | RewardsCreateAssignmentCampaignOrMaterialRewardRequestBody;
197
+ interface RewardsCreateAssignmentCoinRewardRequestBody {
198
+ campaign: string;
199
+ validation_rules?: string[];
200
+ }
201
+ interface RewardsCreateAssignmentCampaignOrMaterialRewardRequestBody {
202
+ campaign: string;
203
+ parameters: {
204
+ loyalty: {
205
+ points?: number;
206
+ };
207
+ };
208
+ }
209
+ type RewardsCreateAssignmentResponseBody = RewardAssignment;
210
+ interface RewardsUpdateAssignmentRequestBody {
211
+ parameters?: {
212
+ loyalty?: {
213
+ points?: number;
214
+ };
215
+ };
216
+ id: string;
217
+ }
218
+ type RewardsUpdateAssignmentResponseBody = RewardAssignment;
219
+
220
+ export type { Reward, RewardAssignment, RewardRedemptionParams, RewardType, RewardTypeCampaign, RewardTypeCoin, RewardTypeMaterial, Rewards, RewardsAssignmentCampaignOrMaterialReward, RewardsAssignmentCoinReward, RewardsAssignmentObject, RewardsCreate, RewardsCreateAssignment, RewardsCreateAssignmentCampaignOrMaterialRewardRequestBody, RewardsCreateAssignmentCoinRewardRequestBody, RewardsCreateAssignmentRequestBody, RewardsCreateAssignmentResponse, RewardsCreateAssignmentResponseBody, RewardsCreateResponse, RewardsGetAssignmentResponseBody, RewardsGetResponse, RewardsListAssignmentsParams, RewardsListAssignmentsRequestQuery, RewardsListAssignmentsResponse, RewardsListAssignmentsResponseBody, RewardsListParams, RewardsListResponse, RewardsResponse, RewardsType, RewardsTypeResponse, RewardsUpdate, RewardsUpdateAssignment, RewardsUpdateAssignmentRequestBody, RewardsUpdateAssignmentResponse, RewardsUpdateAssignmentResponseBody, RewardsUpdateResponse };
@@ -0,0 +1,34 @@
1
+ interface SegmentsCreate {
2
+ name: string;
3
+ type: 'static' | 'auto-update';
4
+ filter?: {
5
+ junction?: 'AND' | 'OR';
6
+ [filter_conditions: string]: any;
7
+ };
8
+ customers?: string[];
9
+ }
10
+ interface SegmentsCreateResponse {
11
+ id: string;
12
+ name: string;
13
+ created_at: string;
14
+ metadata?: Record<string, any>;
15
+ filter?: {
16
+ junction?: 'AND' | 'OR';
17
+ [filter_conditions: string]: any;
18
+ };
19
+ type?: string;
20
+ object: 'segment';
21
+ }
22
+ type SegmentsGetResponse = SegmentsCreateResponse;
23
+ interface SegmentsListResponse {
24
+ object: 'list';
25
+ total: number;
26
+ data_ref: 'data';
27
+ data: {
28
+ id: string;
29
+ name: string;
30
+ object: 'segment';
31
+ }[];
32
+ }
33
+
34
+ export type { SegmentsCreate, SegmentsCreateResponse, SegmentsGetResponse, SegmentsListResponse };