@explorins/pers-sdk 2.1.3 → 2.1.6

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 (127) hide show
  1. package/dist/analytics/api/analytics-api.d.ts +175 -1
  2. package/dist/analytics/api/analytics-api.d.ts.map +1 -1
  3. package/dist/analytics/models/index.d.ts +2 -5
  4. package/dist/analytics/models/index.d.ts.map +1 -1
  5. package/dist/analytics/services/analytics-service.d.ts +32 -1
  6. package/dist/analytics/services/analytics-service.d.ts.map +1 -1
  7. package/dist/analytics.cjs +9 -44
  8. package/dist/analytics.cjs.map +1 -1
  9. package/dist/analytics.js +2 -45
  10. package/dist/analytics.js.map +1 -1
  11. package/dist/campaign/api/campaign-api.d.ts +59 -4
  12. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  13. package/dist/campaign/index.d.ts +1 -0
  14. package/dist/campaign/index.d.ts.map +1 -1
  15. package/dist/campaign/models/index.d.ts +31 -0
  16. package/dist/campaign/models/index.d.ts.map +1 -0
  17. package/dist/campaign/services/campaign-service.d.ts +49 -7
  18. package/dist/campaign/services/campaign-service.d.ts.map +1 -1
  19. package/dist/campaign.cjs +150 -14
  20. package/dist/campaign.cjs.map +1 -1
  21. package/dist/campaign.js +150 -14
  22. package/dist/campaign.js.map +1 -1
  23. package/dist/chunks/analytics-service-B9IfG6ox.js +271 -0
  24. package/dist/chunks/analytics-service-B9IfG6ox.js.map +1 -0
  25. package/dist/chunks/analytics-service-DwkeBB08.cjs +274 -0
  26. package/dist/chunks/analytics-service-DwkeBB08.cjs.map +1 -0
  27. package/dist/chunks/{pers-sdk-fWg-J3_h.js → pers-sdk-BtvhucPY.js} +845 -208
  28. package/dist/chunks/pers-sdk-BtvhucPY.js.map +1 -0
  29. package/dist/chunks/{pers-sdk-BQw3QUWR.cjs → pers-sdk-D4XVDZk3.cjs} +847 -209
  30. package/dist/chunks/pers-sdk-D4XVDZk3.cjs.map +1 -0
  31. package/dist/chunks/{redemption-service-rMB6T2W5.cjs → redemption-service-C61Qr2vI.cjs} +34 -24
  32. package/dist/chunks/redemption-service-C61Qr2vI.cjs.map +1 -0
  33. package/dist/chunks/{redemption-service-D-hBqh42.js → redemption-service-C_UTTDag.js} +34 -24
  34. package/dist/chunks/redemption-service-C_UTTDag.js.map +1 -0
  35. package/dist/chunks/{transaction-request.builder-BpgtuMMq.cjs → transaction-request.builder-B7n7tc1e.cjs} +120 -70
  36. package/dist/chunks/transaction-request.builder-B7n7tc1e.cjs.map +1 -0
  37. package/dist/chunks/{transaction-request.builder-C1vVVFto.js → transaction-request.builder-VbJpI34c.js} +121 -71
  38. package/dist/chunks/transaction-request.builder-VbJpI34c.js.map +1 -0
  39. package/dist/core/auth/api/auth-api.d.ts +1 -4
  40. package/dist/core/auth/api/auth-api.d.ts.map +1 -1
  41. package/dist/core/auth/index.d.ts +1 -1
  42. package/dist/core/auth/index.d.ts.map +1 -1
  43. package/dist/core/auth/services/auth-service.d.ts +1 -4
  44. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  45. package/dist/core/pers-api-client.d.ts.map +1 -1
  46. package/dist/core.cjs +6 -4
  47. package/dist/core.cjs.map +1 -1
  48. package/dist/core.js +5 -4
  49. package/dist/core.js.map +1 -1
  50. package/dist/index.cjs +14 -6
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.d.ts +6 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +6 -5
  55. package/dist/index.js.map +1 -1
  56. package/dist/managers/analytics-manager.d.ts +165 -2
  57. package/dist/managers/analytics-manager.d.ts.map +1 -1
  58. package/dist/managers/auth-manager.d.ts +1 -2
  59. package/dist/managers/auth-manager.d.ts.map +1 -1
  60. package/dist/managers/campaign-manager.d.ts +186 -50
  61. package/dist/managers/campaign-manager.d.ts.map +1 -1
  62. package/dist/managers/index.d.ts +1 -0
  63. package/dist/managers/index.d.ts.map +1 -1
  64. package/dist/managers/redemption-manager.d.ts +50 -3
  65. package/dist/managers/redemption-manager.d.ts.map +1 -1
  66. package/dist/managers/transaction-manager.d.ts +70 -132
  67. package/dist/managers/transaction-manager.d.ts.map +1 -1
  68. package/dist/managers/trigger-source-manager.d.ts +185 -0
  69. package/dist/managers/trigger-source-manager.d.ts.map +1 -0
  70. package/dist/managers/user-manager.d.ts +30 -7
  71. package/dist/managers/user-manager.d.ts.map +1 -1
  72. package/dist/node.cjs +5 -4
  73. package/dist/node.cjs.map +1 -1
  74. package/dist/node.js +5 -4
  75. package/dist/node.js.map +1 -1
  76. package/dist/package.json +7 -2
  77. package/dist/pers-sdk.d.ts +33 -2
  78. package/dist/pers-sdk.d.ts.map +1 -1
  79. package/dist/redemption/api/redemption-api.d.ts +10 -18
  80. package/dist/redemption/api/redemption-api.d.ts.map +1 -1
  81. package/dist/redemption/index.d.ts +1 -0
  82. package/dist/redemption/index.d.ts.map +1 -1
  83. package/dist/redemption/models/index.d.ts +19 -0
  84. package/dist/redemption/models/index.d.ts.map +1 -1
  85. package/dist/redemption/services/redemption-service.d.ts +7 -3
  86. package/dist/redemption/services/redemption-service.d.ts.map +1 -1
  87. package/dist/redemption.cjs +1 -1
  88. package/dist/redemption.js +1 -1
  89. package/dist/shared/index.d.ts +1 -0
  90. package/dist/shared/index.d.ts.map +1 -1
  91. package/dist/transaction/api/transaction-api.d.ts +38 -42
  92. package/dist/transaction/api/transaction-api.d.ts.map +1 -1
  93. package/dist/transaction/index.d.ts +2 -1
  94. package/dist/transaction/index.d.ts.map +1 -1
  95. package/dist/transaction/models/index.d.ts +21 -0
  96. package/dist/transaction/models/index.d.ts.map +1 -1
  97. package/dist/transaction/services/transaction-service.d.ts +12 -15
  98. package/dist/transaction/services/transaction-service.d.ts.map +1 -1
  99. package/dist/transaction.cjs +1 -1
  100. package/dist/transaction.js +1 -1
  101. package/dist/trigger-source/api/trigger-source-api.d.ts +86 -0
  102. package/dist/trigger-source/api/trigger-source-api.d.ts.map +1 -0
  103. package/dist/trigger-source/index.d.ts +10 -0
  104. package/dist/trigger-source/index.d.ts.map +1 -0
  105. package/dist/trigger-source/models/index.d.ts +26 -0
  106. package/dist/trigger-source/models/index.d.ts.map +1 -0
  107. package/dist/trigger-source/services/trigger-source-service.d.ts +42 -0
  108. package/dist/trigger-source/services/trigger-source-service.d.ts.map +1 -0
  109. package/dist/trigger-source.cjs +145 -0
  110. package/dist/trigger-source.cjs.map +1 -0
  111. package/dist/trigger-source.js +142 -0
  112. package/dist/trigger-source.js.map +1 -0
  113. package/dist/user/api/user-api.d.ts +18 -1
  114. package/dist/user/api/user-api.d.ts.map +1 -1
  115. package/dist/user/services/user-service.d.ts +3 -1
  116. package/dist/user/services/user-service.d.ts.map +1 -1
  117. package/dist/user.cjs +26 -4
  118. package/dist/user.cjs.map +1 -1
  119. package/dist/user.js +26 -4
  120. package/dist/user.js.map +1 -1
  121. package/package.json +7 -2
  122. package/dist/chunks/pers-sdk-BQw3QUWR.cjs.map +0 -1
  123. package/dist/chunks/pers-sdk-fWg-J3_h.js.map +0 -1
  124. package/dist/chunks/redemption-service-D-hBqh42.js.map +0 -1
  125. package/dist/chunks/redemption-service-rMB6T2W5.cjs.map +0 -1
  126. package/dist/chunks/transaction-request.builder-BpgtuMMq.cjs.map +0 -1
  127. package/dist/chunks/transaction-request.builder-C1vVVFto.js.map +0 -1
package/dist/campaign.js CHANGED
@@ -25,6 +25,19 @@ class CampaignApi {
25
25
  * Get campaigns with pagination support
26
26
  * Returns paginated response with metadata (total, page, limit, hasMore)
27
27
  * Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all
28
+ *
29
+ * @param options - Filter, pagination, and include options
30
+ * @param options.include - Relations to include: 'triggerSources', 'businesses'
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * // Get campaigns with trigger sources included
35
+ * const campaigns = await api.getCampaigns({ include: ['triggerSources'] });
36
+ * campaigns.data.forEach(c => console.log(c.included?.triggerSources));
37
+ *
38
+ * // Get campaigns with both relations
39
+ * const full = await api.getCampaigns({ include: ['triggerSources', 'businesses'] });
40
+ * ```
28
41
  */
29
42
  async getCampaigns(options) {
30
43
  const params = [];
@@ -41,14 +54,28 @@ class CampaignApi {
41
54
  params.push(`sortBy=${options.sortBy}`);
42
55
  if (options?.sortOrder)
43
56
  params.push(`sortOrder=${options.sortOrder}`);
57
+ if (options?.include?.length)
58
+ params.push(`include=${options.include.join(',')}`);
44
59
  return this.apiClient.get(`/campaigns?${params.join('&')}`);
45
60
  }
46
61
  /**
47
62
  * PUBLIC: Get campaign by ID
48
63
  * NEW: /campaigns/{id}
64
+ *
65
+ * @param id - Campaign UUID
66
+ * @param include - Relations to include: 'triggerSources', 'businesses'
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Get campaign with all relations
71
+ * const campaign = await api.getCampaignById('123', ['triggerSources', 'businesses']);
72
+ * console.log(campaign.included?.triggerSources);
73
+ * console.log(campaign.included?.businesses);
74
+ * ```
49
75
  */
50
- async getCampaignById(id) {
51
- return this.apiClient.get(`/campaigns/${id}`);
76
+ async getCampaignById(id, include) {
77
+ const params = include?.length ? `?include=${include.join(',')}` : '';
78
+ return this.apiClient.get(`/campaigns/${id}${params}`);
52
79
  }
53
80
  /**
54
81
  * ADMIN: Create campaign
@@ -167,6 +194,16 @@ class CampaignApi {
167
194
  const response = await this.apiClient.get(`/campaign-triggers?${params.toString()}`);
168
195
  return normalizeToPaginated(response);
169
196
  }
197
+ /**
198
+ * PUBLIC: Get campaign trigger by ID
199
+ * NEW: GET /campaign-triggers/{id}
200
+ *
201
+ * @param triggerId - Campaign trigger UUID
202
+ * @returns Campaign trigger details
203
+ */
204
+ async getCampaignTriggerById(triggerId) {
205
+ return this.apiClient.get(`/campaign-triggers/${triggerId}`);
206
+ }
170
207
  /**
171
208
  * ADMIN: Create campaign trigger
172
209
  * NEW: POST /campaign-triggers
@@ -195,6 +232,13 @@ class CampaignApi {
195
232
  async setCampaignTrigger(campaignId, triggerId) {
196
233
  return this.apiClient.put(`/campaign-triggers/${triggerId}/assign/${campaignId}`, {});
197
234
  }
235
+ /**
236
+ * ADMIN: Remove trigger from campaign (unassign)
237
+ * NEW: DELETE /campaign-triggers/{triggerId}/assign/{campaignId}
238
+ */
239
+ async removeCampaignTrigger(campaignId, triggerId) {
240
+ return this.apiClient.delete(`/campaign-triggers/${triggerId}/assign/${campaignId}`);
241
+ }
198
242
  /**
199
243
  * ADMIN: Add/Remove condition to trigger
200
244
  * NEW: PUT /campaign-triggers/{triggerId}/conditions/{conditionId}
@@ -266,7 +310,7 @@ class CampaignApi {
266
310
  * });
267
311
  * ```
268
312
  */
269
- async getClaims(filters) {
313
+ async getClaims(filters, include) {
270
314
  const params = buildPaginationParams(filters);
271
315
  // Add filter parameters
272
316
  if (filters?.campaignId)
@@ -275,6 +319,10 @@ class CampaignApi {
275
319
  params.set('userId', filters.userId);
276
320
  if (filters?.businessId)
277
321
  params.set('businessId', filters.businessId);
322
+ // Add include parameter
323
+ if (include && include.length > 0) {
324
+ include.forEach(relation => params.append('include', relation));
325
+ }
278
326
  const endpoint = `/campaigns/claims?${params.toString()}`;
279
327
  const response = await this.apiClient.get(endpoint);
280
328
  return normalizeToPaginated(response);
@@ -284,13 +332,42 @@ class CampaignApi {
284
332
  * Uses /me endpoint for authenticated user context
285
333
  *
286
334
  * @param options - Pagination options
335
+ * @param include - Optional relations to include (campaign, user, business)
287
336
  * @returns Paginated list of user's claims
288
337
  */
289
- async getClaimsLoggedUser(options) {
338
+ async getClaimsLoggedUser(options, include) {
290
339
  const params = buildPaginationParams(options);
340
+ // Add include parameter
341
+ if (include && include.length > 0) {
342
+ include.forEach(relation => params.append('include', relation));
343
+ }
291
344
  const response = await this.apiClient.get(`/campaigns/claims/me?${params.toString()}`);
292
345
  return normalizeToPaginated(response);
293
346
  }
347
+ // ==========================================
348
+ // TRIGGER SOURCE ASSIGNMENT (/campaigns/{id}/trigger-sources)
349
+ // Note: TriggerSource CRUD is in TriggerSourceApi
350
+ // ==========================================
351
+ /**
352
+ * ADMIN: Assign a trigger source to a campaign
353
+ *
354
+ * @param campaignId - Campaign UUID
355
+ * @param triggerSourceId - Trigger source UUID
356
+ * @returns Updated campaign with trigger source assigned
357
+ */
358
+ async assignTriggerSourceToCampaign(campaignId, triggerSourceId) {
359
+ return this.apiClient.put(`/campaigns/${campaignId}/trigger-sources/${triggerSourceId}`, {});
360
+ }
361
+ /**
362
+ * ADMIN: Remove a trigger source from a campaign
363
+ *
364
+ * @param campaignId - Campaign UUID
365
+ * @param triggerSourceId - Trigger source UUID
366
+ * @returns Updated campaign with trigger source removed
367
+ */
368
+ async removeTriggerSourceFromCampaign(campaignId, triggerSourceId) {
369
+ return this.apiClient.delete(`/campaigns/${campaignId}/trigger-sources/${triggerSourceId}`);
370
+ }
294
371
  }
295
372
 
296
373
  /**
@@ -310,9 +387,11 @@ class CampaignService {
310
387
  // ==========================================
311
388
  /**
312
389
  * PUBLIC: Get campaign by ID
390
+ * @param id - Campaign UUID
391
+ * @param include - Relations to include: 'triggerSources', 'businesses'
313
392
  */
314
- async getCampaignById(id) {
315
- return this.campaignApi.getCampaignById(id);
393
+ async getCampaignById(id, include) {
394
+ return this.campaignApi.getCampaignById(id, include);
316
395
  }
317
396
  // ==========================================
318
397
  // AUTHENTICATED OPERATIONS
@@ -325,9 +404,11 @@ class CampaignService {
325
404
  }
326
405
  /**
327
406
  * AUTH: Get claims for logged user with pagination
407
+ * @param options - Pagination options
408
+ * @param include - Optional relations to include (campaign, user, business)
328
409
  */
329
- async getClaimsForLoggedUser(options) {
330
- return this.campaignApi.getClaimsLoggedUser(options);
410
+ async getClaimsForLoggedUser(options, include) {
411
+ return this.campaignApi.getClaimsLoggedUser(options, include);
331
412
  }
332
413
  // ==========================================
333
414
  // CAMPAIGN OPERATIONS (Paginated)
@@ -341,6 +422,7 @@ class CampaignService {
341
422
  * @param options.limit - Items per page (default: 50)
342
423
  * @param options.sortBy - Sort field
343
424
  * @param options.sortOrder - Sort direction
425
+ * @param options.include - Relations to include: 'triggerSources', 'businesses'
344
426
  */
345
427
  async getCampaigns(options) {
346
428
  return this.campaignApi.getCampaigns(options);
@@ -351,6 +433,30 @@ class CampaignService {
351
433
  async getCampaignTriggers(options) {
352
434
  return this.campaignApi.getCampaignTriggers(options);
353
435
  }
436
+ /**
437
+ * ADMIN: Get campaign trigger by ID
438
+ */
439
+ async getCampaignTriggerById(triggerId) {
440
+ return this.campaignApi.getCampaignTriggerById(triggerId);
441
+ }
442
+ /**
443
+ * ADMIN: Create campaign trigger
444
+ */
445
+ async createCampaignTrigger(data) {
446
+ return this.campaignApi.createCampaignTrigger(data);
447
+ }
448
+ /**
449
+ * ADMIN: Update campaign trigger
450
+ */
451
+ async updateCampaignTrigger(triggerId, data) {
452
+ return this.campaignApi.updateCampaignTrigger(triggerId, data);
453
+ }
454
+ /**
455
+ * ADMIN: Delete campaign trigger
456
+ */
457
+ async deleteCampaignTrigger(triggerId) {
458
+ return this.campaignApi.deleteCampaignTrigger(triggerId);
459
+ }
354
460
  /**
355
461
  * ADMIN: Toggle campaign active status
356
462
  */
@@ -375,6 +481,12 @@ class CampaignService {
375
481
  async setCampaignTrigger(campaignId, triggerId) {
376
482
  return this.campaignApi.setCampaignTrigger(campaignId, triggerId);
377
483
  }
484
+ /**
485
+ * ADMIN: Remove trigger from campaign (unassign)
486
+ */
487
+ async removeCampaignTrigger(campaignId, triggerId) {
488
+ return this.campaignApi.removeCampaignTrigger(campaignId, triggerId);
489
+ }
378
490
  /**
379
491
  * ADMIN: Update campaign
380
492
  */
@@ -410,21 +522,45 @@ class CampaignService {
410
522
  }
411
523
  /**
412
524
  * ADMIN: Get campaign claims with optional filters and pagination
525
+ * @param filters - Filter and pagination options
526
+ * @param include - Optional relations to include (campaign, user, business)
413
527
  */
414
- async getCampaignClaims(filters) {
415
- return this.campaignApi.getClaims(filters);
528
+ async getCampaignClaims(filters, include) {
529
+ return this.campaignApi.getClaims(filters, include);
416
530
  }
417
531
  /**
418
532
  * ADMIN: Get campaign claims by user ID with pagination
533
+ * @param userId - User ID to filter by
534
+ * @param options - Pagination options
535
+ * @param include - Optional relations to include (campaign, user, business)
419
536
  */
420
- async getCampaignClaimsByUserId(userId, options) {
421
- return this.campaignApi.getClaims({ userId, ...options });
537
+ async getCampaignClaimsByUserId(userId, options, include) {
538
+ return this.campaignApi.getClaims({ userId, ...options }, include);
422
539
  }
423
540
  /**
424
541
  * ADMIN: Get campaign claims by business ID with pagination
542
+ * @param businessId - Business ID to filter by
543
+ * @param options - Pagination options
544
+ * @param include - Optional relations to include (campaign, user, business)
545
+ */
546
+ async getCampaignClaimsByBusinessId(businessId, options, include) {
547
+ return this.campaignApi.getClaims({ businessId, ...options }, include);
548
+ }
549
+ // ==========================================
550
+ // TRIGGER SOURCE ASSIGNMENT
551
+ // Note: TriggerSource CRUD is in TriggerSourceService
552
+ // ==========================================
553
+ /**
554
+ * ADMIN: Assign a trigger source to a campaign
555
+ */
556
+ async assignTriggerSourceToCampaign(campaignId, triggerSourceId) {
557
+ return this.campaignApi.assignTriggerSourceToCampaign(campaignId, triggerSourceId);
558
+ }
559
+ /**
560
+ * ADMIN: Remove a trigger source from a campaign
425
561
  */
426
- async getCampaignClaimsByBusinessId(businessId, options) {
427
- return this.campaignApi.getClaims({ businessId, ...options });
562
+ async removeTriggerSourceFromCampaign(campaignId, triggerSourceId) {
563
+ return this.campaignApi.removeTriggerSourceFromCampaign(campaignId, triggerSourceId);
428
564
  }
429
565
  }
430
566
 
@@ -1 +1 @@
1
- {"version":3,"file":"campaign.js","sources":["../src/campaign/api/campaign-api.ts","../src/campaign/services/campaign-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"campaign.js","sources":["../src/campaign/api/campaign-api.ts","../src/campaign/services/campaign-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Platform-Agnostic Analytics API Client
3
+ *
4
+ * Handles analytics operations using the PERS backend.
5
+ * Uses @explorins/pers-shared DTOs for consistency with backend.
6
+ */
7
+ class AnalyticsApi {
8
+ constructor(apiClient) {
9
+ this.apiClient = apiClient;
10
+ }
11
+ // ==========================================
12
+ // ADMIN OPERATIONS
13
+ // ==========================================
14
+ /**
15
+ * ADMIN: Get transaction analytics with filtering and aggregation
16
+ */
17
+ async getTransactionAnalytics(request) {
18
+ return this.apiClient.post('/analytics/transactions', request);
19
+ }
20
+ /**
21
+ * ADMIN: Get campaign claim analytics with aggregation (charts, metrics, grouping)
22
+ *
23
+ * This endpoint is for aggregated analytics only (groupBy/metrics).
24
+ * For enriched list data with nested objects, use campaign.getClaims() instead.
25
+ *
26
+ * @example Claims per campaign
27
+ * ```typescript
28
+ * const response = await analyticsApi.getCampaignClaimAnalytics({
29
+ * filters: { status: 'COMPLETED' },
30
+ * groupBy: ['campaignId'],
31
+ * metrics: ['count'],
32
+ * sortBy: 'count',
33
+ * sortOrder: SortOrder.DESC,
34
+ * limit: 10
35
+ * });
36
+ * ```
37
+ *
38
+ * @example Claims over time by status
39
+ * ```typescript
40
+ * const response = await analyticsApi.getCampaignClaimAnalytics({
41
+ * groupBy: ['month', 'status'],
42
+ * metrics: ['count'],
43
+ * sortBy: 'month',
44
+ * sortOrder: SortOrder.DESC,
45
+ * startDate: new Date('2026-01-01'),
46
+ * endDate: new Date('2026-12-31')
47
+ * });
48
+ * ```
49
+ */
50
+ async getCampaignClaimAnalytics(request) {
51
+ return this.apiClient.post('/analytics/campaign-claims', request);
52
+ }
53
+ /**
54
+ * ADMIN: Get user analytics with engagement metrics
55
+ *
56
+ * Returns aggregated user statistics including engagement rate, active users,
57
+ * transaction metrics, and per-active-user averages (more accurate than all-user averages).
58
+ *
59
+ * Request structure matches TransactionAnalytics and CampaignClaimAnalytics for consistency:
60
+ * - filters object for business-specific scoping
61
+ * - startDate/endDate at root level for date range filtering
62
+ *
63
+ * @param request - Analytics request with optional filters and date range
64
+ * @returns Aggregated user metrics with per-user and per-active-user averages
65
+ *
66
+ * @example Basic user analytics (all time, all businesses)
67
+ * ```typescript
68
+ * const analytics = await analyticsApi.getUserAnalytics({});
69
+ * console.log(`Total users: ${analytics.totalUsers}`);
70
+ * console.log(`Active users: ${analytics.activeUsers}`);
71
+ * console.log(`Engagement rate: ${analytics.engagementRate}%`);
72
+ *
73
+ * // Per-user averages (includes inactive users)
74
+ * console.log(`Avg transactions per user: ${analytics.averageTransactionsPerUser}`);
75
+ *
76
+ * // Per-active-user averages (only engaged users - more useful!)
77
+ * console.log(`Avg transactions per active user: ${analytics.averageTransactionsPerActiveUser}`);
78
+ * ```
79
+ *
80
+ * @example Filtered by date range
81
+ * ```typescript
82
+ * const analytics = await analyticsApi.getUserAnalytics({
83
+ * startDate: new Date('2026-01-01'),
84
+ * endDate: new Date('2026-01-31')
85
+ * });
86
+ * console.log(`January metrics:`);
87
+ * console.log(`Active users: ${analytics.activeUsers}`);
88
+ * console.log(`New users: ${analytics.newUsers}`);
89
+ * console.log(`Date range applied: ${analytics.metadata.dateRange?.startDate} - ${analytics.metadata.dateRange?.endDate}`);
90
+ * ```
91
+ *
92
+ * @example Business-specific analytics with filters
93
+ * ```typescript
94
+ * const analytics = await analyticsApi.getUserAnalytics({
95
+ * filters: { businessId: 'biz-123' },
96
+ * startDate: new Date('2026-01-01'),
97
+ * endDate: new Date('2026-12-31')
98
+ * });
99
+ * console.log(`Business customer engagement in 2026:`);
100
+ * console.log(`Active customers: ${analytics.activeUsers}`);
101
+ * console.log(`Avg claims per active customer: ${analytics.averageClaimsPerActiveUser.toFixed(2)}`);
102
+ * console.log(`Customer engagement rate: ${analytics.engagementRate.toFixed(1)}%`);
103
+ * ```
104
+ */
105
+ async getUserAnalytics(request = {}) {
106
+ return this.apiClient.post('/analytics/users', request);
107
+ }
108
+ /**
109
+ * ADMIN: Get user transaction ranking with enriched user data
110
+ *
111
+ * Returns ranked list of users with full user details and transaction metrics.
112
+ * Data enrichment happens via efficient SQL JOINs + UNION (handles legacy transactions).
113
+ *
114
+ * Use Cases:
115
+ * - Admin leaderboards showing top users by activity
116
+ * - User engagement analysis with full user context
117
+ * - Identifying power users for campaigns
118
+ *
119
+ * @param request - Ranking request with filters, sorting, and limit
120
+ * @returns Ranked list with user details (email, externalUserId) and transaction metrics
121
+ *
122
+ * @example Top 50 users by transaction count
123
+ * ```typescript
124
+ * const ranking = await analyticsApi.getUserRanking({
125
+ * sortBy: 'totalTransactions',
126
+ * sortOrder: SortOrder.DESC,
127
+ * limit: 50
128
+ * });
129
+ *
130
+ * ranking.results.forEach((user, index) => {
131
+ * console.log(`#${index + 1}: ${user.email || user.externalUserId} - ${user.totalTransactions} transactions`);
132
+ * });
133
+ * ```
134
+ *
135
+ * @example Top users by STAMP spending
136
+ * ```typescript
137
+ * const ranking = await analyticsApi.getUserRanking({
138
+ * filters: { tokenType: 'STAMP' },
139
+ * sortBy: 'tokenSpent',
140
+ * sortOrder: SortOrder.DESC,
141
+ * limit: 20
142
+ * });
143
+ * ```
144
+ *
145
+ * @example Business-specific leaderboard with date range
146
+ * ```typescript
147
+ * const ranking = await analyticsApi.getUserRanking({
148
+ * filters: {
149
+ * businessId: 'business-uuid-here',
150
+ * tokenType: 'CREDIT'
151
+ * },
152
+ * sortBy: 'totalTransactions',
153
+ * sortOrder: SortOrder.DESC,
154
+ * limit: 100,
155
+ * startDate: new Date('2026-01-01'),
156
+ * endDate: new Date('2026-12-31')
157
+ * });
158
+ * console.log(`Top ${ranking.totalUsers} users for business in 2026`);
159
+ * ```
160
+ */
161
+ async getUserRanking(request = {}) {
162
+ return this.apiClient.post('/analytics/users/ranking', request);
163
+ }
164
+ /**
165
+ * ADMIN: Get business transaction ranking with enriched business data
166
+ *
167
+ * Returns ranked list of businesses with full business details and transaction metrics.
168
+ * Data enrichment happens via efficient SQL JOINs + UNION (handles legacy transactions).
169
+ *
170
+ * @param request - Ranking request with filters, sorting, and limit
171
+ * @returns Ranked list with business details and transaction metrics
172
+ *
173
+ * @example Top 50 businesses by transaction count
174
+ * ```typescript
175
+ * const ranking = await analyticsApi.getBusinessRanking({
176
+ * sortBy: 'totalTransactions',
177
+ * sortOrder: SortOrder.DESC,
178
+ * limit: 50
179
+ * });
180
+ * ```
181
+ */
182
+ async getBusinessRanking(request = {}) {
183
+ return this.apiClient.post('/analytics/businesses/ranking', request);
184
+ }
185
+ /**
186
+ * ADMIN: Get monthly user retention analytics
187
+ *
188
+ * Returns monthly retention data with active/new/returning users and retention rates.
189
+ * Replaces 13 separate API calls with 1 efficient recursive CTE query.
190
+ *
191
+ * @param request - Retention analytics request with monthsBack and filters
192
+ * @returns Monthly retention data with user metrics and retention rates
193
+ *
194
+ * @example Last 13 months retention
195
+ * ```typescript
196
+ * const retention = await analyticsApi.getRetentionAnalytics({
197
+ * monthsBack: 13
198
+ * });
199
+ * ```
200
+ */
201
+ async getRetentionAnalytics(request = {}) {
202
+ return this.apiClient.post('/analytics/users/retention', request);
203
+ }
204
+ }
205
+
206
+ /**
207
+ * Platform-Agnostic Analytics Service
208
+ *
209
+ * Contains analytics business logic and operations that work across platforms.
210
+ * No framework dependencies - pure TypeScript business logic.
211
+ *
212
+ * Focuses only on actual backend capabilities.
213
+ */
214
+ class AnalyticsService {
215
+ constructor(analyticsApi) {
216
+ this.analyticsApi = analyticsApi;
217
+ }
218
+ // ==========================================
219
+ // ADMIN OPERATIONS
220
+ // ==========================================
221
+ /**
222
+ * ADMIN: Get transaction analytics with filtering and aggregation
223
+ */
224
+ async getTransactionAnalytics(request) {
225
+ return this.analyticsApi.getTransactionAnalytics(request);
226
+ }
227
+ /**
228
+ * ADMIN: Get campaign claim analytics with aggregation
229
+ */
230
+ async getCampaignClaimAnalytics(request) {
231
+ return this.analyticsApi.getCampaignClaimAnalytics(request);
232
+ }
233
+ /**
234
+ * ADMIN: Get user analytics with engagement metrics
235
+ *
236
+ * Returns aggregated user statistics including engagement rate, active users,
237
+ * transaction metrics, and claims/redemption averages.
238
+ */
239
+ async getUserAnalytics(request = {}) {
240
+ return this.analyticsApi.getUserAnalytics(request);
241
+ }
242
+ /**
243
+ * ADMIN: Get user transaction ranking with enriched user data
244
+ *
245
+ * Returns ranked list of users with full user details (email, externalUserId)
246
+ * and transaction metrics. Efficient data enrichment via SQL JOINs + UNION.
247
+ */
248
+ async getUserRanking(request = {}) {
249
+ return this.analyticsApi.getUserRanking(request);
250
+ }
251
+ /**
252
+ * ADMIN: Get business transaction ranking with enriched business data
253
+ *
254
+ * Returns ranked list of businesses with full business details and transaction metrics.
255
+ */
256
+ async getBusinessRanking(request = {}) {
257
+ return this.analyticsApi.getBusinessRanking(request);
258
+ }
259
+ /**
260
+ * ADMIN: Get monthly user retention analytics
261
+ *
262
+ * Returns monthly retention data with user metrics and retention rates.
263
+ * Replaces 13 separate API calls with 1 efficient query.
264
+ */
265
+ async getRetentionAnalytics(request = {}) {
266
+ return this.analyticsApi.getRetentionAnalytics(request);
267
+ }
268
+ }
269
+
270
+ export { AnalyticsApi as A, AnalyticsService as a };
271
+ //# sourceMappingURL=analytics-service-B9IfG6ox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-service-B9IfG6ox.js","sources":["../../src/analytics/api/analytics-api.ts","../../src/analytics/services/analytics-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"AAiBA;;;;;AAKG;MACU,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAwB,EAAA;QAAxB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAkB;;;;AAM/C;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkC,yBAAyB,EAAE,OAAO,CAAC;IACjG;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;IACH,MAAM,yBAAyB,CAAC,OAAyC,EAAA;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAoC,4BAA4B,EAAE,OAAO,CAAC;IACtG;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDG;AACH,IAAA,MAAM,gBAAgB,CAAC,OAAA,GAAmC,EAAE,EAAA;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAA2B,kBAAkB,EAAE,OAAO,CAAC;IACnF;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;AACH,IAAA,MAAM,cAAc,CAAC,OAAA,GAA0C,EAAE,EAAA;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkC,0BAA0B,EAAE,OAAO,CAAC;IAClG;AAEA;;;;;;;;;;;;;;;;;AAiBG;AACH,IAAA,MAAM,kBAAkB,CAAC,OAAA,GAA8C,EAAE,EAAA;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAsC,+BAA+B,EAAE,OAAO,CAAC;IAC3G;AAEA;;;;;;;;;;;;;;;AAeG;AACH,IAAA,MAAM,qBAAqB,CAAC,OAAA,GAAwC,EAAE,EAAA;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgC,4BAA4B,EAAE,OAAO,CAAC;IAClG;AACD;;ACjND;;;;;;;AAOG;MACU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;;;;AAMjD;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC;IAC3D;AAEA;;AAEG;IACH,MAAM,yBAAyB,CAAC,OAAyC,EAAA;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC;IAC7D;AAEA;;;;;AAKG;AACH,IAAA,MAAM,gBAAgB,CAAC,OAAA,GAAmC,EAAE,EAAA;QAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACpD;AAEA;;;;;AAKG;AACH,IAAA,MAAM,cAAc,CAAC,OAAA,GAA0C,EAAE,EAAA;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC;IAClD;AAEA;;;;AAIG;AACH,IAAA,MAAM,kBAAkB,CAAC,OAAA,GAA8C,EAAE,EAAA;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;IACtD;AAEA;;;;;AAKG;AACH,IAAA,MAAM,qBAAqB,CAAC,OAAA,GAAwC,EAAE,EAAA;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACzD;AACD;;;;"}