@proveanything/smartlinks 1.8.11 → 1.8.12

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.
package/dist/openapi.yaml CHANGED
@@ -41,6 +41,7 @@ tags:
41
41
  - name: journeys
42
42
  - name: journeysAnalytics
43
43
  - name: location
44
+ - name: loyalty
44
45
  - name: nfc
45
46
  - name: order
46
47
  - name: product
@@ -3993,6 +3994,433 @@ paths:
3993
3994
  description: Unauthorized
3994
3995
  404:
3995
3996
  description: Not found
3997
+ /admin/collection/{collectionId}/loyaltyScheme:
3998
+ get:
3999
+ tags:
4000
+ - loyalty
4001
+ summary: loyalty.list
4002
+ operationId: loyalty_list
4003
+ security:
4004
+ - bearerAuth: []
4005
+ parameters:
4006
+ - name: collectionId
4007
+ in: path
4008
+ required: true
4009
+ schema:
4010
+ type: string
4011
+ responses:
4012
+ 200:
4013
+ description: Success
4014
+ content:
4015
+ application/json:
4016
+ schema:
4017
+ type: array
4018
+ items:
4019
+ $ref: "#/components/schemas/LoyaltyScheme"
4020
+ 400:
4021
+ description: Bad request
4022
+ 401:
4023
+ description: Unauthorized
4024
+ 404:
4025
+ description: Not found
4026
+ post:
4027
+ tags:
4028
+ - loyalty
4029
+ summary: loyalty.create
4030
+ operationId: loyalty_create
4031
+ security:
4032
+ - bearerAuth: []
4033
+ parameters:
4034
+ - name: collectionId
4035
+ in: path
4036
+ required: true
4037
+ schema:
4038
+ type: string
4039
+ responses:
4040
+ 200:
4041
+ description: Success
4042
+ content:
4043
+ application/json:
4044
+ schema:
4045
+ $ref: "#/components/schemas/LoyaltyScheme"
4046
+ 400:
4047
+ description: Bad request
4048
+ 401:
4049
+ description: Unauthorized
4050
+ 404:
4051
+ description: Not found
4052
+ requestBody:
4053
+ required: true
4054
+ content:
4055
+ application/json:
4056
+ schema:
4057
+ $ref: "#/components/schemas/CreateLoyaltySchemeBody"
4058
+ /admin/collection/{collectionId}/loyaltyScheme/{schemeId}:
4059
+ get:
4060
+ tags:
4061
+ - loyalty
4062
+ summary: loyalty.get
4063
+ operationId: loyalty_get
4064
+ security:
4065
+ - bearerAuth: []
4066
+ parameters:
4067
+ - name: collectionId
4068
+ in: path
4069
+ required: true
4070
+ schema:
4071
+ type: string
4072
+ - name: schemeId
4073
+ in: path
4074
+ required: true
4075
+ schema:
4076
+ type: string
4077
+ responses:
4078
+ 200:
4079
+ description: Success
4080
+ content:
4081
+ application/json:
4082
+ schema:
4083
+ $ref: "#/components/schemas/LoyaltyScheme"
4084
+ 400:
4085
+ description: Bad request
4086
+ 401:
4087
+ description: Unauthorized
4088
+ 404:
4089
+ description: Not found
4090
+ patch:
4091
+ tags:
4092
+ - loyalty
4093
+ summary: loyalty.update
4094
+ operationId: loyalty_update
4095
+ security:
4096
+ - bearerAuth: []
4097
+ parameters:
4098
+ - name: collectionId
4099
+ in: path
4100
+ required: true
4101
+ schema:
4102
+ type: string
4103
+ - name: schemeId
4104
+ in: path
4105
+ required: true
4106
+ schema:
4107
+ type: string
4108
+ responses:
4109
+ 200:
4110
+ description: Success
4111
+ content:
4112
+ application/json:
4113
+ schema:
4114
+ $ref: "#/components/schemas/LoyaltyScheme"
4115
+ 400:
4116
+ description: Bad request
4117
+ 401:
4118
+ description: Unauthorized
4119
+ 404:
4120
+ description: Not found
4121
+ requestBody:
4122
+ required: true
4123
+ content:
4124
+ application/json:
4125
+ schema:
4126
+ $ref: "#/components/schemas/UpdateLoyaltySchemeBody"
4127
+ delete:
4128
+ tags:
4129
+ - loyalty
4130
+ summary: loyalty.remove
4131
+ operationId: loyalty_remove
4132
+ security:
4133
+ - bearerAuth: []
4134
+ parameters:
4135
+ - name: collectionId
4136
+ in: path
4137
+ required: true
4138
+ schema:
4139
+ type: string
4140
+ - name: schemeId
4141
+ in: path
4142
+ required: true
4143
+ schema:
4144
+ type: string
4145
+ responses:
4146
+ 200:
4147
+ description: Success
4148
+ content:
4149
+ application/json:
4150
+ schema:
4151
+ $ref: "#/components/schemas/LoyaltyScheme"
4152
+ 400:
4153
+ description: Bad request
4154
+ 401:
4155
+ description: Unauthorized
4156
+ 404:
4157
+ description: Not found
4158
+ /admin/collection/{collectionId}/loyaltyScheme/{schemeId}/earningRule:
4159
+ get:
4160
+ tags:
4161
+ - loyalty
4162
+ summary: loyalty.listEarningRules
4163
+ operationId: loyalty_listEarningRules
4164
+ security:
4165
+ - bearerAuth: []
4166
+ parameters:
4167
+ - name: collectionId
4168
+ in: path
4169
+ required: true
4170
+ schema:
4171
+ type: string
4172
+ - name: schemeId
4173
+ in: path
4174
+ required: true
4175
+ schema:
4176
+ type: string
4177
+ responses:
4178
+ 200:
4179
+ description: Success
4180
+ content:
4181
+ application/json:
4182
+ schema:
4183
+ type: array
4184
+ items:
4185
+ $ref: "#/components/schemas/LoyaltyEarningRule"
4186
+ 400:
4187
+ description: Bad request
4188
+ 401:
4189
+ description: Unauthorized
4190
+ 404:
4191
+ description: Not found
4192
+ post:
4193
+ tags:
4194
+ - loyalty
4195
+ summary: loyalty.createEarningRule
4196
+ operationId: loyalty_createEarningRule
4197
+ security:
4198
+ - bearerAuth: []
4199
+ parameters:
4200
+ - name: collectionId
4201
+ in: path
4202
+ required: true
4203
+ schema:
4204
+ type: string
4205
+ - name: schemeId
4206
+ in: path
4207
+ required: true
4208
+ schema:
4209
+ type: string
4210
+ responses:
4211
+ 200:
4212
+ description: Success
4213
+ content:
4214
+ application/json:
4215
+ schema:
4216
+ $ref: "#/components/schemas/LoyaltyEarningRule"
4217
+ 400:
4218
+ description: Bad request
4219
+ 401:
4220
+ description: Unauthorized
4221
+ 404:
4222
+ description: Not found
4223
+ requestBody:
4224
+ required: true
4225
+ content:
4226
+ application/json:
4227
+ schema:
4228
+ $ref: "#/components/schemas/CreateLoyaltyEarningRuleBody"
4229
+ /admin/collection/{collectionId}/loyaltyScheme/{schemeId}/earningRule/{ruleId}:
4230
+ get:
4231
+ tags:
4232
+ - loyalty
4233
+ summary: loyalty.getEarningRule
4234
+ operationId: loyalty_getEarningRule
4235
+ security:
4236
+ - bearerAuth: []
4237
+ parameters:
4238
+ - name: collectionId
4239
+ in: path
4240
+ required: true
4241
+ schema:
4242
+ type: string
4243
+ - name: schemeId
4244
+ in: path
4245
+ required: true
4246
+ schema:
4247
+ type: string
4248
+ - name: ruleId
4249
+ in: path
4250
+ required: true
4251
+ schema:
4252
+ type: string
4253
+ responses:
4254
+ 200:
4255
+ description: Success
4256
+ content:
4257
+ application/json:
4258
+ schema:
4259
+ $ref: "#/components/schemas/LoyaltyEarningRule"
4260
+ 400:
4261
+ description: Bad request
4262
+ 401:
4263
+ description: Unauthorized
4264
+ 404:
4265
+ description: Not found
4266
+ patch:
4267
+ tags:
4268
+ - loyalty
4269
+ summary: loyalty.updateEarningRule
4270
+ operationId: loyalty_updateEarningRule
4271
+ security:
4272
+ - bearerAuth: []
4273
+ parameters:
4274
+ - name: collectionId
4275
+ in: path
4276
+ required: true
4277
+ schema:
4278
+ type: string
4279
+ - name: schemeId
4280
+ in: path
4281
+ required: true
4282
+ schema:
4283
+ type: string
4284
+ - name: ruleId
4285
+ in: path
4286
+ required: true
4287
+ schema:
4288
+ type: string
4289
+ responses:
4290
+ 200:
4291
+ description: Success
4292
+ content:
4293
+ application/json:
4294
+ schema:
4295
+ $ref: "#/components/schemas/LoyaltyEarningRule"
4296
+ 400:
4297
+ description: Bad request
4298
+ 401:
4299
+ description: Unauthorized
4300
+ 404:
4301
+ description: Not found
4302
+ requestBody:
4303
+ required: true
4304
+ content:
4305
+ application/json:
4306
+ schema:
4307
+ $ref: "#/components/schemas/UpdateLoyaltyEarningRuleBody"
4308
+ delete:
4309
+ tags:
4310
+ - loyalty
4311
+ summary: loyalty.removeEarningRule
4312
+ operationId: loyalty_removeEarningRule
4313
+ security:
4314
+ - bearerAuth: []
4315
+ parameters:
4316
+ - name: collectionId
4317
+ in: path
4318
+ required: true
4319
+ schema:
4320
+ type: string
4321
+ - name: schemeId
4322
+ in: path
4323
+ required: true
4324
+ schema:
4325
+ type: string
4326
+ - name: ruleId
4327
+ in: path
4328
+ required: true
4329
+ schema:
4330
+ type: string
4331
+ responses:
4332
+ 200:
4333
+ description: Success
4334
+ content:
4335
+ application/json:
4336
+ schema:
4337
+ $ref: "#/components/schemas/LoyaltyEarningRule"
4338
+ 400:
4339
+ description: Bad request
4340
+ 401:
4341
+ description: Unauthorized
4342
+ 404:
4343
+ description: Not found
4344
+ /admin/collection/{collectionId}/loyaltyScheme/{schemeId}/member/{contactId}:
4345
+ get:
4346
+ tags:
4347
+ - loyalty
4348
+ summary: loyalty.getMember
4349
+ operationId: loyalty_getMember
4350
+ security:
4351
+ - bearerAuth: []
4352
+ parameters:
4353
+ - name: collectionId
4354
+ in: path
4355
+ required: true
4356
+ schema:
4357
+ type: string
4358
+ - name: schemeId
4359
+ in: path
4360
+ required: true
4361
+ schema:
4362
+ type: string
4363
+ - name: contactId
4364
+ in: path
4365
+ required: true
4366
+ schema:
4367
+ type: string
4368
+ responses:
4369
+ 200:
4370
+ description: Success
4371
+ content:
4372
+ application/json:
4373
+ schema:
4374
+ $ref: "#/components/schemas/LoyaltyMember"
4375
+ 400:
4376
+ description: Bad request
4377
+ 401:
4378
+ description: Unauthorized
4379
+ 404:
4380
+ description: Not found
4381
+ /admin/collection/{collectionId}/loyaltyScheme/{schemeId}/member/{contactId}/transaction:
4382
+ post:
4383
+ tags:
4384
+ - loyalty
4385
+ summary: Manually award or deduct points for a contact.
4386
+ operationId: loyalty_recordTransaction
4387
+ security:
4388
+ - bearerAuth: []
4389
+ parameters:
4390
+ - name: collectionId
4391
+ in: path
4392
+ required: true
4393
+ schema:
4394
+ type: string
4395
+ - name: schemeId
4396
+ in: path
4397
+ required: true
4398
+ schema:
4399
+ type: string
4400
+ - name: contactId
4401
+ in: path
4402
+ required: true
4403
+ schema:
4404
+ type: string
4405
+ responses:
4406
+ 200:
4407
+ description: Success
4408
+ content:
4409
+ application/json:
4410
+ schema:
4411
+ $ref: "#/components/schemas/LoyaltyTransactionResult"
4412
+ 400:
4413
+ description: Bad request
4414
+ 401:
4415
+ description: Unauthorized
4416
+ 404:
4417
+ description: Not found
4418
+ requestBody:
4419
+ required: true
4420
+ content:
4421
+ application/json:
4422
+ schema:
4423
+ $ref: "#/components/schemas/RecordLoyaltyTransactionBody"
3996
4424
  /admin/collection/{collectionId}/orders:
3997
4425
  get:
3998
4426
  tags:
@@ -8115,9 +8543,170 @@ paths:
8115
8543
  /public/collection/{collectionId}/interactions/by-user:
8116
8544
  post:
8117
8545
  tags:
8118
- - interactions
8119
- summary: interactions.publicMyInteractions
8120
- operationId: interactions_publicMyInteractions
8546
+ - interactions
8547
+ summary: interactions.publicMyInteractions
8548
+ operationId: interactions_publicMyInteractions
8549
+ security: []
8550
+ parameters:
8551
+ - name: collectionId
8552
+ in: path
8553
+ required: true
8554
+ schema:
8555
+ type: string
8556
+ responses:
8557
+ 200:
8558
+ description: Success
8559
+ content:
8560
+ application/json:
8561
+ schema:
8562
+ type: array
8563
+ items:
8564
+ $ref: "#/components/schemas/InteractionEventRow"
8565
+ 400:
8566
+ description: Bad request
8567
+ 401:
8568
+ description: Unauthorized
8569
+ 404:
8570
+ description: Not found
8571
+ requestBody:
8572
+ required: true
8573
+ content:
8574
+ application/json:
8575
+ schema:
8576
+ $ref: "#/components/schemas/PublicInteractionsByUserRequest"
8577
+ /public/collection/{collectionId}/interactions/counts-by-outcome:
8578
+ post:
8579
+ tags:
8580
+ - interactions
8581
+ summary: interactions.publicCountsByOutcome
8582
+ operationId: interactions_publicCountsByOutcome
8583
+ security: []
8584
+ parameters:
8585
+ - name: collectionId
8586
+ in: path
8587
+ required: true
8588
+ schema:
8589
+ type: string
8590
+ responses:
8591
+ 200:
8592
+ description: Success
8593
+ content:
8594
+ application/json:
8595
+ schema:
8596
+ type: array
8597
+ items:
8598
+ $ref: "#/components/schemas/OutcomeCount"
8599
+ 400:
8600
+ description: Bad request
8601
+ 401:
8602
+ description: Unauthorized
8603
+ 404:
8604
+ description: Not found
8605
+ requestBody:
8606
+ required: true
8607
+ content:
8608
+ application/json:
8609
+ schema:
8610
+ $ref: "#/components/schemas/PublicInteractionsCountsByOutcomeRequest"
8611
+ /public/collection/{collectionId}/interactions/{id}:
8612
+ get:
8613
+ tags:
8614
+ - interactions
8615
+ summary: interactions.publicGet
8616
+ operationId: interactions_publicGet
8617
+ security: []
8618
+ parameters:
8619
+ - name: collectionId
8620
+ in: path
8621
+ required: true
8622
+ schema:
8623
+ type: string
8624
+ - name: id
8625
+ in: path
8626
+ required: true
8627
+ schema:
8628
+ type: string
8629
+ responses:
8630
+ 200:
8631
+ description: Success
8632
+ content:
8633
+ application/json:
8634
+ schema:
8635
+ $ref: "#/components/schemas/InteractionTypeRecord"
8636
+ 400:
8637
+ description: Bad request
8638
+ 401:
8639
+ description: Unauthorized
8640
+ 404:
8641
+ description: Not found
8642
+ /public/collection/{collectionId}/interactions/{qs}:
8643
+ get:
8644
+ tags:
8645
+ - interactions
8646
+ summary: interactions.publicList
8647
+ operationId: interactions_publicList
8648
+ security: []
8649
+ parameters:
8650
+ - name: collectionId
8651
+ in: path
8652
+ required: true
8653
+ schema:
8654
+ type: string
8655
+ - name: qs
8656
+ in: path
8657
+ required: true
8658
+ schema:
8659
+ type: string
8660
+ responses:
8661
+ 200:
8662
+ description: Success
8663
+ content:
8664
+ application/json:
8665
+ schema:
8666
+ $ref: "#/components/schemas/InteractionTypeList"
8667
+ 400:
8668
+ description: Bad request
8669
+ 401:
8670
+ description: Unauthorized
8671
+ 404:
8672
+ description: Not found
8673
+ /public/collection/{collectionId}/location/{locationId}:
8674
+ get:
8675
+ tags:
8676
+ - location
8677
+ summary: "Admin: Search locations to pick during setup (combines collection + global) GET /admin/collection/:collectionId/location"
8678
+ operationId: location_getPublicForCollection
8679
+ security: []
8680
+ parameters:
8681
+ - name: collectionId
8682
+ in: path
8683
+ required: true
8684
+ schema:
8685
+ type: string
8686
+ - name: locationId
8687
+ in: path
8688
+ required: true
8689
+ schema:
8690
+ type: string
8691
+ responses:
8692
+ 200:
8693
+ description: Success
8694
+ content:
8695
+ application/json:
8696
+ schema:
8697
+ $ref: "#/components/schemas/Location"
8698
+ 400:
8699
+ description: Bad request
8700
+ 401:
8701
+ description: Unauthorized
8702
+ 404:
8703
+ description: Not found
8704
+ /public/collection/{collectionId}/loyaltyScheme:
8705
+ get:
8706
+ tags:
8707
+ - loyalty
8708
+ summary: List active schemes for a collection.
8709
+ operationId: loyalty_publicList
8121
8710
  security: []
8122
8711
  parameters:
8123
8712
  - name: collectionId
@@ -8133,25 +8722,19 @@ paths:
8133
8722
  schema:
8134
8723
  type: array
8135
8724
  items:
8136
- $ref: "#/components/schemas/InteractionEventRow"
8725
+ $ref: "#/components/schemas/LoyaltyScheme"
8137
8726
  400:
8138
8727
  description: Bad request
8139
8728
  401:
8140
8729
  description: Unauthorized
8141
8730
  404:
8142
8731
  description: Not found
8143
- requestBody:
8144
- required: true
8145
- content:
8146
- application/json:
8147
- schema:
8148
- $ref: "#/components/schemas/PublicInteractionsByUserRequest"
8149
- /public/collection/{collectionId}/interactions/counts-by-outcome:
8150
- post:
8732
+ /public/collection/{collectionId}/loyaltyScheme/me:
8733
+ get:
8151
8734
  tags:
8152
- - interactions
8153
- summary: interactions.publicCountsByOutcome
8154
- operationId: interactions_publicCountsByOutcome
8735
+ - loyalty
8736
+ summary: "List active earning rules for a scheme — useful for showing \"how to earn\" in a loyalty UI."
8737
+ operationId: loyalty_publicGetMe
8155
8738
  security: []
8156
8739
  parameters:
8157
8740
  - name: collectionId
@@ -8167,25 +8750,19 @@ paths:
8167
8750
  schema:
8168
8751
  type: array
8169
8752
  items:
8170
- $ref: "#/components/schemas/OutcomeCount"
8753
+ $ref: "#/components/schemas/LoyaltySchemeWithMembership"
8171
8754
  400:
8172
8755
  description: Bad request
8173
8756
  401:
8174
8757
  description: Unauthorized
8175
8758
  404:
8176
8759
  description: Not found
8177
- requestBody:
8178
- required: true
8179
- content:
8180
- application/json:
8181
- schema:
8182
- $ref: "#/components/schemas/PublicInteractionsCountsByOutcomeRequest"
8183
- /public/collection/{collectionId}/interactions/{id}:
8760
+ /public/collection/{collectionId}/loyaltyScheme/{schemeId}:
8184
8761
  get:
8185
8762
  tags:
8186
- - interactions
8187
- summary: interactions.publicGet
8188
- operationId: interactions_publicGet
8763
+ - loyalty
8764
+ summary: List active schemes for a collection.
8765
+ operationId: loyalty_publicGet
8189
8766
  security: []
8190
8767
  parameters:
8191
8768
  - name: collectionId
@@ -8193,7 +8770,7 @@ paths:
8193
8770
  required: true
8194
8771
  schema:
8195
8772
  type: string
8196
- - name: id
8773
+ - name: schemeId
8197
8774
  in: path
8198
8775
  required: true
8199
8776
  schema:
@@ -8204,19 +8781,19 @@ paths:
8204
8781
  content:
8205
8782
  application/json:
8206
8783
  schema:
8207
- $ref: "#/components/schemas/InteractionTypeRecord"
8784
+ $ref: "#/components/schemas/LoyaltyScheme"
8208
8785
  400:
8209
8786
  description: Bad request
8210
8787
  401:
8211
8788
  description: Unauthorized
8212
8789
  404:
8213
8790
  description: Not found
8214
- /public/collection/{collectionId}/interactions/{qs}:
8791
+ /public/collection/{collectionId}/loyaltyScheme/{schemeId}/earningRule:
8215
8792
  get:
8216
8793
  tags:
8217
- - interactions
8218
- summary: interactions.publicList
8219
- operationId: interactions_publicList
8794
+ - loyalty
8795
+ summary: List active schemes for a collection.
8796
+ operationId: loyalty_publicListEarningRules
8220
8797
  security: []
8221
8798
  parameters:
8222
8799
  - name: collectionId
@@ -8224,7 +8801,7 @@ paths:
8224
8801
  required: true
8225
8802
  schema:
8226
8803
  type: string
8227
- - name: qs
8804
+ - name: schemeId
8228
8805
  in: path
8229
8806
  required: true
8230
8807
  schema:
@@ -8235,19 +8812,21 @@ paths:
8235
8812
  content:
8236
8813
  application/json:
8237
8814
  schema:
8238
- $ref: "#/components/schemas/InteractionTypeList"
8815
+ type: array
8816
+ items:
8817
+ $ref: "#/components/schemas/LoyaltyEarningRule"
8239
8818
  400:
8240
8819
  description: Bad request
8241
8820
  401:
8242
8821
  description: Unauthorized
8243
8822
  404:
8244
8823
  description: Not found
8245
- /public/collection/{collectionId}/location/{locationId}:
8824
+ /public/collection/{collectionId}/loyaltyScheme/{schemeId}/member/me:
8246
8825
  get:
8247
8826
  tags:
8248
- - location
8249
- summary: "Admin: Search locations to pick during setup (combines collection + global) GET /admin/collection/:collectionId/location"
8250
- operationId: location_getPublicForCollection
8827
+ - loyalty
8828
+ summary: "Get all active schemes with the caller's membership embedded in each."
8829
+ operationId: loyalty_publicGetMine
8251
8830
  security: []
8252
8831
  parameters:
8253
8832
  - name: collectionId
@@ -8255,7 +8834,7 @@ paths:
8255
8834
  required: true
8256
8835
  schema:
8257
8836
  type: string
8258
- - name: locationId
8837
+ - name: schemeId
8259
8838
  in: path
8260
8839
  required: true
8261
8840
  schema:
@@ -8266,7 +8845,7 @@ paths:
8266
8845
  content:
8267
8846
  application/json:
8268
8847
  schema:
8269
- $ref: "#/components/schemas/Location"
8848
+ $ref: "#/components/schemas/LoyaltyMember"
8270
8849
  400:
8271
8850
  description: Bad request
8272
8851
  401:
@@ -16572,6 +17151,293 @@ components:
16572
17151
  required:
16573
17152
  - items
16574
17153
  - count
17154
+ LoyaltyScheme:
17155
+ type: object
17156
+ properties:
17157
+ id:
17158
+ type: string
17159
+ orgId:
17160
+ type: string
17161
+ collectionId:
17162
+ type: string
17163
+ name:
17164
+ type: string
17165
+ type:
17166
+ type: string
17167
+ active:
17168
+ type: boolean
17169
+ createdAt:
17170
+ type: string
17171
+ updatedAt:
17172
+ type: string
17173
+ deletedAt:
17174
+ type: string
17175
+ data:
17176
+ $ref: "#/components/schemas/DataBlock"
17177
+ owner:
17178
+ $ref: "#/components/schemas/DataBlock"
17179
+ admin:
17180
+ $ref: "#/components/schemas/DataBlock"
17181
+ required:
17182
+ - id
17183
+ - orgId
17184
+ - collectionId
17185
+ - name
17186
+ - type
17187
+ - active
17188
+ - createdAt
17189
+ - updatedAt
17190
+ - deletedAt
17191
+ - data
17192
+ LoyaltyMember:
17193
+ type: object
17194
+ properties:
17195
+ id:
17196
+ type: string
17197
+ orgId:
17198
+ type: string
17199
+ collectionId:
17200
+ type: string
17201
+ schemeId:
17202
+ type: string
17203
+ contactId:
17204
+ type: string
17205
+ userId:
17206
+ type: string
17207
+ balance:
17208
+ type: number
17209
+ lifetimePoints:
17210
+ type: number
17211
+ createdAt:
17212
+ type: string
17213
+ updatedAt:
17214
+ type: string
17215
+ data:
17216
+ $ref: "#/components/schemas/DataBlock"
17217
+ owner:
17218
+ $ref: "#/components/schemas/DataBlock"
17219
+ admin:
17220
+ $ref: "#/components/schemas/DataBlock"
17221
+ required:
17222
+ - id
17223
+ - orgId
17224
+ - collectionId
17225
+ - schemeId
17226
+ - contactId
17227
+ - userId
17228
+ - balance
17229
+ - lifetimePoints
17230
+ - createdAt
17231
+ - updatedAt
17232
+ - data
17233
+ LoyaltyTransaction:
17234
+ type: object
17235
+ properties:
17236
+ id:
17237
+ type: string
17238
+ orgId:
17239
+ type: string
17240
+ collectionId:
17241
+ type: string
17242
+ schemeId:
17243
+ type: string
17244
+ memberId:
17245
+ type: string
17246
+ points:
17247
+ type: number
17248
+ reason:
17249
+ type: string
17250
+ idempotencyKey:
17251
+ type: string
17252
+ metadata:
17253
+ $ref: "#/components/schemas/DataBlock"
17254
+ createdAt:
17255
+ type: string
17256
+ required:
17257
+ - id
17258
+ - orgId
17259
+ - collectionId
17260
+ - schemeId
17261
+ - memberId
17262
+ - points
17263
+ - reason
17264
+ - idempotencyKey
17265
+ - metadata
17266
+ - createdAt
17267
+ LoyaltyEarningRule:
17268
+ type: object
17269
+ properties:
17270
+ id:
17271
+ type: string
17272
+ orgId:
17273
+ type: string
17274
+ collectionId:
17275
+ type: string
17276
+ schemeId:
17277
+ type: string
17278
+ interactionId:
17279
+ type: string
17280
+ points:
17281
+ type: number
17282
+ conditions:
17283
+ type: object
17284
+ additionalProperties:
17285
+ type: string
17286
+ maxPerContact:
17287
+ type: number
17288
+ cooldownHours:
17289
+ type: number
17290
+ active:
17291
+ type: boolean
17292
+ createdAt:
17293
+ type: string
17294
+ updatedAt:
17295
+ type: string
17296
+ data:
17297
+ $ref: "#/components/schemas/DataBlock"
17298
+ required:
17299
+ - id
17300
+ - orgId
17301
+ - collectionId
17302
+ - schemeId
17303
+ - interactionId
17304
+ - points
17305
+ - conditions
17306
+ - maxPerContact
17307
+ - cooldownHours
17308
+ - active
17309
+ - createdAt
17310
+ - updatedAt
17311
+ - data
17312
+ LoyaltySchemeWithMembership:
17313
+ type: object
17314
+ properties:
17315
+ member:
17316
+ type: string
17317
+ enum:
17318
+ - owner
17319
+ - admin
17320
+ required:
17321
+ - member
17322
+ LoyaltyTransactionResult:
17323
+ type: object
17324
+ properties:
17325
+ member:
17326
+ $ref: "#/components/schemas/LoyaltyMember"
17327
+ transaction:
17328
+ $ref: "#/components/schemas/LoyaltyTransaction"
17329
+ required:
17330
+ - member
17331
+ - transaction
17332
+ LoyaltyPaginationParams:
17333
+ type: object
17334
+ properties:
17335
+ limit:
17336
+ type: number
17337
+ offset:
17338
+ type: number
17339
+ LoyaltyPaginatedResult:
17340
+ type: object
17341
+ properties:
17342
+ items:
17343
+ type: array
17344
+ items:
17345
+ $ref: "#/components/schemas/T"
17346
+ limit:
17347
+ type: number
17348
+ offset:
17349
+ type: number
17350
+ required:
17351
+ - items
17352
+ - limit
17353
+ - offset
17354
+ CreateLoyaltySchemeBody:
17355
+ type: object
17356
+ properties:
17357
+ name:
17358
+ type: string
17359
+ type:
17360
+ type: string
17361
+ active:
17362
+ type: boolean
17363
+ data:
17364
+ $ref: "#/components/schemas/DataBlock"
17365
+ owner:
17366
+ $ref: "#/components/schemas/DataBlock"
17367
+ admin:
17368
+ $ref: "#/components/schemas/DataBlock"
17369
+ required:
17370
+ - name
17371
+ - type
17372
+ UpdateLoyaltySchemeBody:
17373
+ type: object
17374
+ properties:
17375
+ name:
17376
+ type: string
17377
+ type:
17378
+ type: string
17379
+ active:
17380
+ type: boolean
17381
+ data:
17382
+ $ref: "#/components/schemas/DataBlock"
17383
+ owner:
17384
+ $ref: "#/components/schemas/DataBlock"
17385
+ admin:
17386
+ $ref: "#/components/schemas/DataBlock"
17387
+ CreateLoyaltyEarningRuleBody:
17388
+ type: object
17389
+ properties:
17390
+ interactionId:
17391
+ type: string
17392
+ points:
17393
+ type: number
17394
+ conditions:
17395
+ type: object
17396
+ additionalProperties:
17397
+ type: string
17398
+ maxPerContact:
17399
+ type: number
17400
+ cooldownHours:
17401
+ type: number
17402
+ active:
17403
+ type: boolean
17404
+ data:
17405
+ $ref: "#/components/schemas/DataBlock"
17406
+ required:
17407
+ - interactionId
17408
+ - points
17409
+ UpdateLoyaltyEarningRuleBody:
17410
+ type: object
17411
+ properties:
17412
+ points:
17413
+ type: number
17414
+ conditions:
17415
+ type: object
17416
+ additionalProperties:
17417
+ type: string
17418
+ maxPerContact:
17419
+ type: number
17420
+ cooldownHours:
17421
+ type: number
17422
+ active:
17423
+ type: boolean
17424
+ data:
17425
+ $ref: "#/components/schemas/DataBlock"
17426
+ RecordLoyaltyTransactionBody:
17427
+ type: object
17428
+ properties:
17429
+ points:
17430
+ type: number
17431
+ reason:
17432
+ type: string
17433
+ idempotencyKey:
17434
+ type: string
17435
+ metadata:
17436
+ $ref: "#/components/schemas/DataBlock"
17437
+ userId:
17438
+ type: string
17439
+ required:
17440
+ - points
16575
17441
  NfcTagInfo:
16576
17442
  type: object
16577
17443
  properties: