@explorins/pers-shared 2.1.81 → 2.1.82

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 (53) hide show
  1. package/dist/cjs/index.d.ts +1 -1
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/shared-lib/dto/analytics/base-analytics.dto.d.ts +2 -2
  6. package/dist/cjs/shared-lib/dto/analytics/base-analytics.dto.d.ts.map +1 -1
  7. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts +2 -6
  8. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -1
  9. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.js +13 -7
  10. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.js.map +1 -1
  11. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts +2 -6
  12. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  13. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.js +8 -3
  14. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -1
  15. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts +71 -0
  16. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts.map +1 -0
  17. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.js +242 -0
  18. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.js.map +1 -0
  19. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts +2 -6
  20. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  21. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js +7 -2
  22. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js.map +1 -1
  23. package/dist/cjs/shared-lib/dto/index.d.ts +1 -0
  24. package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
  25. package/dist/cjs/shared-lib/dto/index.js +1 -0
  26. package/dist/cjs/shared-lib/dto/index.js.map +1 -1
  27. package/dist/esm/index.d.ts +1 -1
  28. package/dist/esm/index.d.ts.map +1 -1
  29. package/dist/esm/index.js +1 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.d.ts +2 -2
  32. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.d.ts.map +1 -1
  33. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts +2 -6
  34. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -1
  35. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.js +13 -7
  36. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.js.map +1 -1
  37. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts +2 -6
  38. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  39. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js +8 -3
  40. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -1
  41. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts +71 -0
  42. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts.map +1 -0
  43. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.js +215 -0
  44. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.js.map +1 -0
  45. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts +2 -6
  46. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  47. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js +7 -2
  48. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js.map +1 -1
  49. package/dist/esm/shared-lib/dto/index.d.ts +1 -0
  50. package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
  51. package/dist/esm/shared-lib/dto/index.js +1 -0
  52. package/dist/esm/shared-lib/dto/index.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  export * from './shared-lib/enum';
2
2
  export * from './shared-lib/interfaces';
3
3
  export * from './shared-lib/types';
4
- export type * from './shared-lib/dto';
4
+ export * from './shared-lib/dto';
5
5
  export * from '@explorins/web3-types';
6
6
  export type * from './shared-lib/errors';
7
7
  export { type StructuredError, ErrorCategory } from './shared-lib/errors/base/error-classification-enums';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,mBAAmB,kBAAkB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -21,6 +21,7 @@ exports.ErrorCategory = void 0;
21
21
  __exportStar(require("./shared-lib/enum"), exports);
22
22
  __exportStar(require("./shared-lib/interfaces"), exports);
23
23
  __exportStar(require("./shared-lib/types"), exports);
24
+ __exportStar(require("./shared-lib/dto"), exports); // Export runtime classes, not just types
24
25
  // Re-export web3 types for convenience
25
26
  __exportStar(require("@explorins/web3-types"), exports);
26
27
  var error_classification_enums_1 = require("./shared-lib/errors/base/error-classification-enums");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,8FAA8F;;;;;;;;;;;;;;;;;AAE9F,wBAAwB;AACxB,oDAAkC;AAClC,0DAAwC;AACxC,qDAAmC;AAGnC,uCAAuC;AACvC,wDAAsC;AAItC,kGAA0G;AAA3E,2HAAA,aAAa,OAAA;AAE5C,4CAA4C;AAC5C,2CAA2C;AAC3C,iFAAiF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,8FAA8F;;;;;;;;;;;;;;;;;AAE9F,wBAAwB;AACxB,oDAAkC;AAClC,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC,CAAC,yCAAyC;AAE3E,uCAAuC;AACvC,wDAAsC;AAItC,kGAA0G;AAA3E,2HAAA,aAAa,OAAA;AAE5C,4CAA4C;AAC5C,2CAA2C;AAC3C,iFAAiF"}
@@ -19,9 +19,9 @@ export declare abstract class BaseAnalyticsRequestDTO {
19
19
  */
20
20
  export interface BaseAnalyticsMetadata {
21
21
  /**
22
- * Applied date range filter (only present if startDate or endDate was provided in request)
22
+ * Applied date range filter (always present - uses current date as fallback if not provided in request)
23
23
  */
24
- dateRange?: {
24
+ dateRange: {
25
25
  startDate: Date;
26
26
  endDate: Date;
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"base-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/base-analytics.dto.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,8BAAsB,uBAAuB;IAO3C,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,CAAC;KACf,CAAC;CACH;AAED;;;;;GAKG;AACH,8BAAsB,wBAAwB;IAC5C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC1C"}
1
+ {"version":3,"file":"base-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/base-analytics.dto.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,8BAAsB,uBAAuB;IAO3C,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,EAAE;QACT,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,CAAC;KACf,CAAC;CACH;AAED;;;;;GAKG;AACH,8BAAsB,wBAAwB;IAC5C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC1C"}
@@ -2,6 +2,7 @@ import { TransactionDTO } from '../transaction/transaction.dto';
2
2
  import { SortOrder } from '../../enum';
3
3
  import { AnalyticsGroupByType, AnalyticsMetricType, AnalyticsResultItem } from '../../types/analytics.type';
4
4
  import { GroupByExpressionDTO } from './group-by-expression.dto';
5
+ import { BaseAnalyticsMetadata } from './base-analytics.dto';
5
6
  declare const TransactionAnalyticsFiltersDTO_base: import("@nestjs/common").Type<Partial<Omit<TransactionDTO, "createdAt" | "updatedAt">>>;
6
7
  /**
7
8
  * Type-safe filters for transaction analytics
@@ -35,12 +36,7 @@ export type TransactionAnalyticsGroupByType = AnalyticsGroupByType | keyof Omit<
35
36
  export declare class TransactionAnalyticsResponseDTO {
36
37
  results: TransactionAnalyticsResultItem[];
37
38
  totalGroups: number;
38
- metadata: {
39
- dateRange?: {
40
- startDate: Date;
41
- endDate: Date;
42
- };
43
- };
39
+ metadata: BaseAnalyticsMetadata;
44
40
  }
45
41
  export type TransactionAnalyticsResultItem = AnalyticsResultItem & {
46
42
  [K in keyof Omit<TransactionDTO, 'id' | 'createdAt' | 'updatedAt' | 'transactionHash'>]?: TransactionDTO[K];
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAA0B,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpI,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;;AAEjE;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;;GAGG;AACH,qBAAa,8BAA8B;IAkBzC,OAAO,CAAC,EAAE,8BAA8B,CAAC;IAUzC,OAAO,CAAC,EAAE,+BAA+B,EAAE,CAAC;IAkB5C,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAW5C,OAAO,EAAE,mBAAmB,EAAE,CAAa;IAU3C,MAAM,CAAC,EAAE,mBAAmB,GAAG,+BAA+B,GAAG,MAAM,CAAW;IASlF,SAAS,CAAC,EAAE,SAAS,CAAkB;IAcvC,KAAK,CAAC,EAAE,MAAM,CAAM;IASpB,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,+BAA+B,GACzC,oBAAoB,GAClB,MAAM,IAAI,CAAC,cAAc,EACrB,WAAW,GAAG,WAAW,GACzB,IAAI,GACJ,iBAAiB,CACpB,CAAC;AAEN;;GAEG;AACH,qBAAa,+BAA+B;IAU1C,OAAO,EAAE,8BAA8B,EAAE,CAAM;IAM/C,WAAW,EAAE,MAAM,CAAK;IAWxB,QAAQ,EAAE;QACR,SAAS,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,CAAC;KACH,CAAM;CACR;AAED,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;KAEhE,CAAC,IAAI,MAAM,IAAI,CAAC,cAAc,EAC3B,IAAI,GACJ,WAAW,GAAG,WAAW,GACzB,iBAAiB,CACpB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAA0B,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpI,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;;AAE7D;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAEJ;;;GAGG;AACH,qBAAa,8BAA8B;IAkBzC,OAAO,CAAC,EAAE,8BAA8B,CAAC;IAUzC,OAAO,CAAC,EAAE,+BAA+B,EAAE,CAAC;IAkB5C,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAW5C,OAAO,EAAE,mBAAmB,EAAE,CAAa;IAU3C,MAAM,CAAC,EAAE,mBAAmB,GAAG,+BAA+B,GAAG,MAAM,CAAW;IASlF,SAAS,CAAC,EAAE,SAAS,CAAkB;IAcvC,KAAK,CAAC,EAAE,MAAM,CAAM;IASpB,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,+BAA+B,GACzC,oBAAoB,GAClB,MAAM,IAAI,CAAC,cAAc,EACrB,WAAW,GAAG,WAAW,GACzB,IAAI,GACJ,iBAAiB,CACpB,CAAC;AAEN;;GAEG;AACH,qBAAa,+BAA+B;IAU1C,OAAO,EAAE,8BAA8B,EAAE,CAAM;IAM/C,WAAW,EAAE,MAAM,CAAK;IAWxB,QAAQ,EAAE,qBAAqB,CAK7B;CACH;AAED,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;KAEhE,CAAC,IAAI,MAAM,IAAI,CAAC,cAAc,EAC3B,IAAI,GACJ,WAAW,GAAG,WAAW,GACzB,iBAAiB,CACpB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;CACvB,CAAC"}
@@ -17,6 +17,7 @@ const transaction_dto_1 = require("../transaction/transaction.dto");
17
17
  const enum_1 = require("../../enum");
18
18
  const analytics_type_1 = require("../../types/analytics.type");
19
19
  const group_by_expression_dto_1 = require("./group-by-expression.dto");
20
+ const native_token_type_1 = require("../../types/native-token.type");
20
21
  /**
21
22
  * Type-safe filters for transaction analytics
22
23
  * All fields optional via PartialType
@@ -50,11 +51,11 @@ class TransactionAnalyticsRequestDTO {
50
51
  exports.TransactionAnalyticsRequestDTO = TransactionAnalyticsRequestDTO;
51
52
  __decorate([
52
53
  (0, swagger_1.ApiPropertyOptional)({
53
- description: 'Dynamic filters based on TransactionDTO fields - all transaction fields available',
54
+ description: 'Dynamic filters based on TransactionDTO fields - all transaction fields available. Note: tokenType uses native blockchain types (ERC721, ERC20, ERC1155), not friendly names.',
54
55
  type: TransactionAnalyticsFiltersDTO,
55
56
  example: {
56
57
  status: 'SUCCEEDED',
57
- tokenType: 'STAMP',
58
+ tokenType: native_token_type_1.NativeTokenTypes.ERC721,
58
59
  triggerProcessType: 'MINT',
59
60
  tenantId: 'tenant-123',
60
61
  chainId: 1
@@ -68,7 +69,7 @@ __decorate([
68
69
  ], TransactionAnalyticsRequestDTO.prototype, "filters", void 0);
69
70
  __decorate([
70
71
  (0, swagger_1.ApiPropertyOptional)({
71
- description: 'Fields to group by - any TransactionDTO field plus computed time fields',
72
+ description: 'Fields to group by - any TransactionDTO field plus computed time fields. Note: tokenType values are ERC721/ERC20/ERC1155.',
72
73
  type: [String],
73
74
  example: ['tokenType', 'month', 'status', 'chainId']
74
75
  }),
@@ -163,17 +164,22 @@ __decorate([
163
164
  class TransactionAnalyticsResponseDTO {
164
165
  results = [];
165
166
  totalGroups = 0;
166
- metadata = {};
167
+ metadata = {
168
+ dateRange: {
169
+ startDate: new Date(),
170
+ endDate: new Date()
171
+ }
172
+ };
167
173
  }
168
174
  exports.TransactionAnalyticsResponseDTO = TransactionAnalyticsResponseDTO;
169
175
  __decorate([
170
176
  (0, swagger_1.ApiProperty)({
171
- description: 'Analytics results array with dynamic fields and expression aliases',
177
+ description: 'Analytics results array with dynamic fields and expression aliases. Note: tokenType values are ERC721/ERC20/ERC1155, not friendly names.',
172
178
  type: 'array',
173
179
  example: [
174
180
  { userId: 'user-123', count: 45 },
175
181
  { userAddress: '0xabc...def', count: 32 },
176
- { tokenType: 'STAMP', count: 150, month: '2024-01-01T00:00:00.000Z' }
182
+ { tokenType: native_token_type_1.NativeTokenTypes.ERC721, count: 150, month: '2024-01-01T00:00:00.000Z' }
177
183
  ]
178
184
  }),
179
185
  __metadata("design:type", Array)
@@ -187,7 +193,7 @@ __decorate([
187
193
  ], TransactionAnalyticsResponseDTO.prototype, "totalGroups", void 0);
188
194
  __decorate([
189
195
  (0, swagger_1.ApiProperty)({
190
- description: 'Query metadata showing applied filters',
196
+ description: 'Query metadata showing applied date range (always present)',
191
197
  example: {
192
198
  dateRange: {
193
199
  startDate: '2024-01-01T00:00:00.000Z',
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/transaction-analytics.request.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/transaction-analytics.request.dto.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { BaseAnalyticsMetadata } from './base-analytics.dto';
1
2
  /**
2
3
  * USER ANALYTICS FILTERS DTO
3
4
  *
@@ -46,11 +47,6 @@ export declare class UserAnalyticsResponseDTO {
46
47
  activeUsers: number;
47
48
  newUsers: number;
48
49
  }[];
49
- metadata: {
50
- dateRange?: {
51
- startDate: Date;
52
- endDate: Date;
53
- };
54
- };
50
+ metadata: BaseAnalyticsMetadata;
55
51
  }
56
52
  //# sourceMappingURL=user-analytics.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,qBAAa,uBAAuB;IASlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,oBAAoB,EAAE,MAAM,CAAK;IAMjC,yBAAyB,EAAE,MAAM,CAAK;IAMtC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAO5C,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAgBJ,QAAQ,EAAE;QACR,SAAS,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,CAAC;KACH,CAAM;CACR"}
1
+ {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAEyC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtG;;;;;GAKG;AACH,qBAAa,uBAAuB;IASlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,oBAAoB,EAAE,MAAM,CAAK;IAMjC,yBAAyB,EAAE,MAAM,CAAK;IAMtC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAO5C,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAgBJ,QAAQ,EAAE,qBAAqB,CAK7B;CACH"}
@@ -101,7 +101,12 @@ class UserAnalyticsResponseDTO {
101
101
  averageRedemptionsPerActiveUser = 0;
102
102
  engagementRate = 0;
103
103
  periodBreakdown;
104
- metadata = {};
104
+ metadata = {
105
+ dateRange: {
106
+ startDate: new Date(),
107
+ endDate: new Date()
108
+ }
109
+ };
105
110
  }
106
111
  exports.UserAnalyticsResponseDTO = UserAnalyticsResponseDTO;
107
112
  __decorate([
@@ -206,7 +211,7 @@ __decorate([
206
211
  ], UserAnalyticsResponseDTO.prototype, "periodBreakdown", void 0);
207
212
  __decorate([
208
213
  (0, swagger_1.ApiProperty)({
209
- description: 'Query metadata showing applied filters',
214
+ description: 'Query metadata showing applied date range (always present)',
210
215
  type: 'object',
211
216
  properties: {
212
217
  dateRange: {
@@ -215,7 +220,7 @@ __decorate([
215
220
  startDate: { type: 'string', format: 'date-time' },
216
221
  endDate: { type: 'string', format: 'date-time' }
217
222
  },
218
- description: 'Applied date range filter (only present if startDate or endDate was provided)'
223
+ description: 'Applied date range filter'
219
224
  }
220
225
  }
221
226
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAAqF;AACrF,yDAAyC;AAEzC;;;;;GAKG;AACH,MAAa,uBAAuB;IASlC,UAAU,CAAU;CACrB;AAVD,0DAUC;AADC;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iGAAiG;QAC9G,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2DACS;AAGtB;;;;;;;GAOG;AACH,MAAa,uBAAuB;IAWlC,OAAO,CAA2B;IAQlC,SAAS,CAAQ;IAQjB,OAAO,CAAQ;CAChB;AA5BD,0DA4BC;AAjBC;IAVC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,+DAA+D;QAC5E,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE;YACP,UAAU,EAAE,cAAc;SAC3B;KACF,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;8BAC1B,uBAAuB;wDAAC;AAQlC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,wIAAwI;QACrJ,OAAO,EAAE,sBAAsB;KAChC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACH,IAAI;0DAAC;AAQjB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sIAAsI;QACnJ,OAAO,EAAE,sBAAsB;KAChC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACL,IAAI;wDAAC;AAGjB;;;;;;;GAOG;AACH,MAAa,wBAAwB;IAKnC,UAAU,GAAW,CAAC,CAAC;IAMvB,WAAW,GAAW,CAAC,CAAC;IAMxB,QAAQ,GAAW,CAAC,CAAC;IAMrB,0BAA0B,GAAW,CAAC,CAAC;IAMvC,wBAAwB,GAAW,CAAC,CAAC;IAMrC,sBAAsB,GAAW,CAAC,CAAC;IAMnC,oBAAoB,GAAW,CAAC,CAAC;IAMjC,yBAAyB,GAAW,CAAC,CAAC;IAMtC,gCAAgC,GAAW,CAAC,CAAC;IAM7C,0BAA0B,GAAW,CAAC,CAAC;IAMvC,+BAA+B,GAAW,CAAC,CAAC;IAO5C,cAAc,GAAW,CAAC,CAAC;IAc3B,eAAe,CAIX;IAgBJ,QAAQ,GAKJ,EAAE,CAAC;CACR;AAhHD,4DAgHC;AA3GC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6HAA6H;QAC1I,OAAO,EAAE,KAAK;KACf,CAAC;;4DACqB;AAMvB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mQAAmQ;QAChR,OAAO,EAAE,IAAI;KACd,CAAC;;6DACsB;AAMxB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yIAAyI;QACtJ,OAAO,EAAE,GAAG;KACb,CAAC;;0DACmB;AAMrB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uPAAuP;QACpQ,OAAO,EAAE,IAAI;KACd,CAAC;;4EACqC;AAMvC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wJAAwJ;QACrK,OAAO,EAAE,KAAK;KACf,CAAC;;0EACmC;AAMrC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,gKAAgK;QAC7K,OAAO,EAAE,QAAQ;KAClB,CAAC;;wEACiC;AAMnC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,iJAAiJ;QAC9J,OAAO,EAAE,GAAG;KACb,CAAC;;sEAC+B;AAMjC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,gKAAgK;QAC7K,OAAO,EAAE,GAAG;KACb,CAAC;;2EACoC;AAMtC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wNAAwN;QACrO,OAAO,EAAE,IAAI;KACd,CAAC;;kFAC2C;AAM7C;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4JAA4J;QACzK,OAAO,EAAE,GAAG;KACb,CAAC;;4EACqC;AAMvC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2KAA2K;QACxL,OAAO,EAAE,GAAG;KACb,CAAC;;iFAC0C;AAO5C;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wJAAwJ;QACrK,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,QAAQ;KACf,CAAC;;gEACyB;AAc3B;IAZC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBAC/C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;gBAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;aAC1C;SACF;KACF,CAAC;;iEAKE;AAgBJ;IAdC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;oBAClD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;iBACjD;gBACD,WAAW,EAAE,+EAA+E;aAC7F;SACF;KACF,CAAC;;0DAMK"}
1
+ {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { SortOrder } from '../../enum';
2
+ import type { NativeTokenType } from '../../types/native-token.type';
3
+ import { BaseAnalyticsMetadata } from './base-analytics.dto';
4
+ /**
5
+ * USER RANKING FILTERS DTO
6
+ *
7
+ * Filters to scope user ranking calculations.
8
+ * Determines which transactions/users to include.
9
+ */
10
+ export declare class UserRankingFiltersDTO {
11
+ businessId?: string;
12
+ tokenType?: NativeTokenType;
13
+ }
14
+ /**
15
+ * USER RANKING REQUEST DTO
16
+ *
17
+ * Request structure for user transaction ranking analytics.
18
+ * Returns ranked list of users with transaction metrics and full user details.
19
+ *
20
+ * Use Cases:
21
+ * - Admin leaderboards showing top users by activity
22
+ * - User engagement analysis with full user context
23
+ * - Identifying power users for campaigns
24
+ */
25
+ export declare class UserRankingAnalyticsRequestDTO {
26
+ filters?: UserRankingFiltersDTO;
27
+ sortBy?: 'totalTransactions' | 'tokenSpent' | 'userId' | 'email';
28
+ sortOrder?: SortOrder;
29
+ limit?: number;
30
+ startDate?: Date;
31
+ endDate?: Date;
32
+ }
33
+ /**
34
+ * USER RANKING RESULT ITEM DTO
35
+ *
36
+ * Single user's ranking data with full user details and transaction metrics.
37
+ * Enriched with user data via SQL JOIN (not post-query enrichment).
38
+ */
39
+ export declare class UserRankingResultItemDTO {
40
+ userId: string | null;
41
+ email: string | null;
42
+ externalUserId: string | null;
43
+ totalTransactions: number;
44
+ tokenSpent: number;
45
+ hasLegacyTransactions?: boolean;
46
+ }
47
+ /**
48
+ * USER RANKING RESPONSE DTO
49
+ *
50
+ * Ranked list of users with transaction metrics and full user details.
51
+ * Results are pre-sorted by backend according to request.sortBy/sortOrder.
52
+ */
53
+ export declare class UserRankingAnalyticsResponseDTO {
54
+ results: UserRankingResultItemDTO[];
55
+ totalUsers: number;
56
+ metadata: BaseAnalyticsMetadata & {
57
+ /**
58
+ * Token type used for filtering sum (if provided in request)
59
+ * Native token type (ERC721, ERC20, ERC1155)
60
+ */
61
+ tokenType?: NativeTokenType;
62
+ /**
63
+ * Sort configuration applied
64
+ */
65
+ sorting?: {
66
+ sortBy: string;
67
+ sortOrder: SortOrder;
68
+ };
69
+ };
70
+ }
71
+ //# sourceMappingURL=user-ranking-analytics.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-ranking-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-ranking-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,qBAAqB;IAShC,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,8BAA8B;IAYzC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAUhC,MAAM,CAAC,EAAE,mBAAmB,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IAUjE,SAAS,CAAC,EAAE,SAAS,CAAC;IAatB,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IAUnC,MAAM,EAAG,MAAM,GAAG,IAAI,CAAC;IASvB,KAAK,EAAG,MAAM,GAAG,IAAI,CAAC;IAQtB,cAAc,EAAG,MAAM,GAAG,IAAI,CAAC;IAQ/B,iBAAiB,EAAG,MAAM,CAAC;IAM3B,UAAU,EAAG,MAAM,CAAC;IAUpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,+BAA+B;IAM1C,OAAO,EAAG,wBAAwB,EAAE,CAAC;IAMrC,UAAU,EAAG,MAAM,CAAC;IAMpB,QAAQ,EAAG,qBAAqB,GAAG;QACjC;;;WAGG;QACH,SAAS,CAAC,EAAE,eAAe,CAAC;QAE5B;;WAEG;QACH,OAAO,CAAC,EAAE;YACR,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,SAAS,CAAC;SACtB,CAAC;KACH,CAAC;CACH"}
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserRankingAnalyticsResponseDTO = exports.UserRankingResultItemDTO = exports.UserRankingAnalyticsRequestDTO = exports.UserRankingFiltersDTO = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ const class_transformer_1 = require("class-transformer");
16
+ const enum_1 = require("../../enum");
17
+ const native_token_type_1 = require("../../types/native-token.type");
18
+ /**
19
+ * USER RANKING FILTERS DTO
20
+ *
21
+ * Filters to scope user ranking calculations.
22
+ * Determines which transactions/users to include.
23
+ */
24
+ class UserRankingFiltersDTO {
25
+ businessId;
26
+ tokenType;
27
+ }
28
+ exports.UserRankingFiltersDTO = UserRankingFiltersDTO;
29
+ __decorate([
30
+ (0, swagger_1.ApiPropertyOptional)({
31
+ description: 'Filter to specific business (filters transactions by engagedBusinessId)',
32
+ type: String,
33
+ format: 'uuid',
34
+ example: 'biz-uuid-123'
35
+ }),
36
+ (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.IsString)(),
38
+ __metadata("design:type", String)
39
+ ], UserRankingFiltersDTO.prototype, "businessId", void 0);
40
+ __decorate([
41
+ (0, swagger_1.ApiPropertyOptional)({
42
+ description: 'Filter token sum by specific native token type (ERC721 for stamps, ERC20 for credits, ERC1155 for multi-token). Transaction count includes ALL token types, but sum only includes this type. Frontend SDK should convert friendly names (STAMP → ERC721, CREDIT → ERC20).',
43
+ enum: native_token_type_1.NativeTokenTypes,
44
+ example: native_token_type_1.NativeTokenTypes.ERC721
45
+ }),
46
+ (0, class_validator_1.IsOptional)(),
47
+ (0, class_validator_1.IsEnum)(native_token_type_1.NativeTokenTypes),
48
+ __metadata("design:type", String)
49
+ ], UserRankingFiltersDTO.prototype, "tokenType", void 0);
50
+ /**
51
+ * USER RANKING REQUEST DTO
52
+ *
53
+ * Request structure for user transaction ranking analytics.
54
+ * Returns ranked list of users with transaction metrics and full user details.
55
+ *
56
+ * Use Cases:
57
+ * - Admin leaderboards showing top users by activity
58
+ * - User engagement analysis with full user context
59
+ * - Identifying power users for campaigns
60
+ */
61
+ class UserRankingAnalyticsRequestDTO {
62
+ filters;
63
+ sortBy;
64
+ sortOrder;
65
+ limit;
66
+ startDate;
67
+ endDate;
68
+ }
69
+ exports.UserRankingAnalyticsRequestDTO = UserRankingAnalyticsRequestDTO;
70
+ __decorate([
71
+ (0, swagger_1.ApiPropertyOptional)({
72
+ description: 'Filters to scope which transactions/users to include',
73
+ type: UserRankingFiltersDTO,
74
+ example: {
75
+ businessId: 'biz-uuid-123',
76
+ tokenType: native_token_type_1.NativeTokenTypes.ERC721
77
+ }
78
+ }),
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, class_validator_1.ValidateNested)(),
81
+ (0, class_transformer_1.Type)(() => UserRankingFiltersDTO),
82
+ __metadata("design:type", UserRankingFiltersDTO)
83
+ ], UserRankingAnalyticsRequestDTO.prototype, "filters", void 0);
84
+ __decorate([
85
+ (0, swagger_1.ApiPropertyOptional)({
86
+ description: 'Field to sort results by',
87
+ enum: ['totalTransactions', 'tokenSpent', 'userId', 'email'],
88
+ default: 'totalTransactions',
89
+ example: 'totalTransactions'
90
+ }),
91
+ (0, class_validator_1.IsOptional)(),
92
+ (0, class_validator_1.IsString)(),
93
+ __metadata("design:type", String)
94
+ ], UserRankingAnalyticsRequestDTO.prototype, "sortBy", void 0);
95
+ __decorate([
96
+ (0, swagger_1.ApiPropertyOptional)({
97
+ description: 'Sort direction',
98
+ enum: enum_1.SortOrder,
99
+ default: enum_1.SortOrder.DESC,
100
+ example: enum_1.SortOrder.DESC
101
+ }),
102
+ (0, class_validator_1.IsOptional)(),
103
+ (0, class_validator_1.IsEnum)(enum_1.SortOrder),
104
+ __metadata("design:type", String)
105
+ ], UserRankingAnalyticsRequestDTO.prototype, "sortOrder", void 0);
106
+ __decorate([
107
+ (0, swagger_1.ApiPropertyOptional)({
108
+ description: 'Maximum number of results to return (top N users)',
109
+ minimum: 1,
110
+ maximum: 1000,
111
+ default: 50,
112
+ example: 50
113
+ }),
114
+ (0, class_validator_1.IsOptional)(),
115
+ (0, class_validator_1.IsNumber)(),
116
+ (0, class_validator_1.Min)(1),
117
+ (0, class_validator_1.Max)(1000),
118
+ __metadata("design:type", Number)
119
+ ], UserRankingAnalyticsRequestDTO.prototype, "limit", void 0);
120
+ __decorate([
121
+ (0, swagger_1.ApiPropertyOptional)({
122
+ description: 'Start date for filtering transactions (ISO 8601 format). Only transactions within date range are counted.',
123
+ example: '2024-01-01T00:00:00Z'
124
+ }),
125
+ (0, class_validator_1.IsOptional)(),
126
+ (0, class_validator_1.IsDateString)(),
127
+ __metadata("design:type", Date)
128
+ ], UserRankingAnalyticsRequestDTO.prototype, "startDate", void 0);
129
+ __decorate([
130
+ (0, swagger_1.ApiPropertyOptional)({
131
+ description: 'End date for filtering transactions (ISO 8601 format). Only transactions within date range are counted.',
132
+ example: '2024-12-31T23:59:59Z'
133
+ }),
134
+ (0, class_validator_1.IsOptional)(),
135
+ (0, class_validator_1.IsDateString)(),
136
+ __metadata("design:type", Date)
137
+ ], UserRankingAnalyticsRequestDTO.prototype, "endDate", void 0);
138
+ /**
139
+ * USER RANKING RESULT ITEM DTO
140
+ *
141
+ * Single user's ranking data with full user details and transaction metrics.
142
+ * Enriched with user data via SQL JOIN (not post-query enrichment).
143
+ */
144
+ class UserRankingResultItemDTO {
145
+ // ========== USER IDENTITY ==========
146
+ userId;
147
+ email;
148
+ externalUserId;
149
+ // ========== TRANSACTION METRICS ==========
150
+ totalTransactions;
151
+ tokenSpent;
152
+ // ========== METADATA ==========
153
+ hasLegacyTransactions;
154
+ }
155
+ exports.UserRankingResultItemDTO = UserRankingResultItemDTO;
156
+ __decorate([
157
+ (0, swagger_1.ApiProperty)({
158
+ description: 'User UUID. NULL for system/business senders (filtered out in most cases).',
159
+ type: String,
160
+ format: 'uuid',
161
+ nullable: true,
162
+ example: 'user-uuid-123'
163
+ }),
164
+ __metadata("design:type", Object)
165
+ ], UserRankingResultItemDTO.prototype, "userId", void 0);
166
+ __decorate([
167
+ (0, swagger_1.ApiPropertyOptional)({
168
+ description: 'User email address. NULL if user privacy settings hide email or user is system/business.',
169
+ type: String,
170
+ format: 'email',
171
+ nullable: true,
172
+ example: 'user@example.com'
173
+ }),
174
+ __metadata("design:type", Object)
175
+ ], UserRankingResultItemDTO.prototype, "email", void 0);
176
+ __decorate([
177
+ (0, swagger_1.ApiPropertyOptional)({
178
+ description: 'External user identifier from external system (CRM, auth provider, etc.). NULL if not set.',
179
+ type: String,
180
+ nullable: true,
181
+ example: 'ext-user-123'
182
+ }),
183
+ __metadata("design:type", Object)
184
+ ], UserRankingResultItemDTO.prototype, "externalUserId", void 0);
185
+ __decorate([
186
+ (0, swagger_1.ApiProperty)({
187
+ description: 'Total number of successful transactions (status=succeeded) for this user across ALL token types. Counts both sent and received transactions.',
188
+ example: 42
189
+ }),
190
+ __metadata("design:type", Number)
191
+ ], UserRankingResultItemDTO.prototype, "totalTransactions", void 0);
192
+ __decorate([
193
+ (0, swagger_1.ApiProperty)({
194
+ description: 'Total amount spent/transferred in the filtered token type (filters.tokenType). If no tokenType filter specified, sums ALL token types. Only counts successful transactions (status=succeeded).',
195
+ example: 1250.50
196
+ }),
197
+ __metadata("design:type", Number)
198
+ ], UserRankingResultItemDTO.prototype, "tokenSpent", void 0);
199
+ __decorate([
200
+ (0, swagger_1.ApiPropertyOptional)({
201
+ description: 'Indicates if this user has transactions without senderId (legacy transactions). User may still have full details if resolved via wallet or accountAddress. Post-migration, this will always be false.',
202
+ type: Boolean,
203
+ default: false,
204
+ example: false
205
+ }),
206
+ __metadata("design:type", Boolean)
207
+ ], UserRankingResultItemDTO.prototype, "hasLegacyTransactions", void 0);
208
+ /**
209
+ * USER RANKING RESPONSE DTO
210
+ *
211
+ * Ranked list of users with transaction metrics and full user details.
212
+ * Results are pre-sorted by backend according to request.sortBy/sortOrder.
213
+ */
214
+ class UserRankingAnalyticsResponseDTO {
215
+ results;
216
+ totalUsers;
217
+ metadata;
218
+ }
219
+ exports.UserRankingAnalyticsResponseDTO = UserRankingAnalyticsResponseDTO;
220
+ __decorate([
221
+ (0, swagger_1.ApiProperty)({
222
+ description: 'Ranked list of users with transaction metrics and full user details. Pre-sorted by backend.',
223
+ type: [UserRankingResultItemDTO],
224
+ isArray: true
225
+ }),
226
+ __metadata("design:type", Array)
227
+ ], UserRankingAnalyticsResponseDTO.prototype, "results", void 0);
228
+ __decorate([
229
+ (0, swagger_1.ApiProperty)({
230
+ description: 'Total number of users returned (≤ request.limit)',
231
+ example: 50
232
+ }),
233
+ __metadata("design:type", Number)
234
+ ], UserRankingAnalyticsResponseDTO.prototype, "totalUsers", void 0);
235
+ __decorate([
236
+ (0, swagger_1.ApiProperty)({
237
+ description: 'Metadata about the query execution',
238
+ type: 'object'
239
+ }),
240
+ __metadata("design:type", Object)
241
+ ], UserRankingAnalyticsResponseDTO.prototype, "metadata", void 0);
242
+ //# sourceMappingURL=user-ranking-analytics.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-ranking-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-ranking-analytics.dto.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { CampaignClaimAnalyticsDTO } from '../analytics/campaign-claim-analytics
2
2
  import { SortOrder } from '../../enum';
3
3
  import { AnalyticsGroupByType, AnalyticsMetricType, AnalyticsResultItem } from '../../types/analytics.type';
4
4
  import { GroupByExpressionDTO } from '../analytics/group-by-expression.dto';
5
+ import { BaseAnalyticsMetadata } from '../analytics/base-analytics.dto';
5
6
  declare const CampaignClaimAnalyticsFiltersDTO_base: import("@nestjs/common").Type<Partial<Omit<CampaignClaimAnalyticsDTO, "user" | "business" | "campaign" | "triggerSource" | "createdAt">>>;
6
7
  /**
7
8
  * SCALABLE ANALYTICS REQUEST PATTERN
@@ -56,12 +57,7 @@ export type CampaignClaimAnalyticsGroupByType = AnalyticsGroupByType | keyof Omi
56
57
  export declare class CampaignClaimAnalyticsResponseDTO {
57
58
  results: CampaignClaimAnalyticsResultItem[];
58
59
  totalGroups: number;
59
- metadata: {
60
- dateRange?: {
61
- startDate: Date;
62
- endDate: Date;
63
- };
64
- };
60
+ metadata: BaseAnalyticsMetadata;
65
61
  }
66
62
  export type CampaignClaimAnalyticsResultItem = AnalyticsResultItem & {
67
63
  [K in keyof Omit<CampaignClaimAnalyticsDTO, 'id' | 'createdAt' | 'user' | 'campaign' | 'business' | 'triggerSource' | 'message'>]?: CampaignClaimAnalyticsDTO[K];
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-claim-analytics-request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAA0B,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpI,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;;AAE5E;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,qBAAa,gCAAiC,SAAQ,qCAQrD;IASC,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,qBAAa,gCAAgC;IAe3C,OAAO,CAAC,EAAE,gCAAgC,CAAC;IAU3C,OAAO,CAAC,EAAE,iCAAiC,EAAE,CAAC;IAe9C,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAW5C,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAa;IAS5C,MAAM,CAAC,EAAE,mBAAmB,GAAG,iCAAiC,GAAG,MAAM,CAAW;IASpF,SAAS,CAAC,EAAE,SAAS,CAAkB;IAcvC,KAAK,CAAC,EAAE,MAAM,CAAM;IASpB,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAC3C,oBAAoB,GAClB,MAAM,IAAI,CAAC,yBAAyB,EAChC,WAAW,GACX,IAAI,GACJ,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,CAClB,CAAC;AAEN;;;;GAIG;AACH,qBAAa,iCAAiC;IAU5C,OAAO,EAAE,gCAAgC,EAAE,CAAM;IAMjD,WAAW,EAAE,MAAM,CAAK;IAWxB,QAAQ,EAAE;QACR,SAAS,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,CAAC;KACH,CAAM;CACR;AAED,MAAM,MAAM,gCAAgC,GAAG,mBAAmB,GAAG;KAElE,CAAC,IAAI,MAAM,IAAI,CAAC,yBAAyB,EACtC,IAAI,GACJ,WAAW,GACX,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,GACf,SAAS,CACZ,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"campaign-claim-analytics-request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAA0B,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpI,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;;AAExE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,qBAAa,gCAAiC,SAAQ,qCAQrD;IASC,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,qBAAa,gCAAgC;IAe3C,OAAO,CAAC,EAAE,gCAAgC,CAAC;IAU3C,OAAO,CAAC,EAAE,iCAAiC,EAAE,CAAC;IAe9C,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAW5C,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAa;IAS5C,MAAM,CAAC,EAAE,mBAAmB,GAAG,iCAAiC,GAAG,MAAM,CAAW;IASpF,SAAS,CAAC,EAAE,SAAS,CAAkB;IAcvC,KAAK,CAAC,EAAE,MAAM,CAAM;IASpB,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAC3C,oBAAoB,GAClB,MAAM,IAAI,CAAC,yBAAyB,EAChC,WAAW,GACX,IAAI,GACJ,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,CAClB,CAAC;AAEN;;;;GAIG;AACH,qBAAa,iCAAiC;IAU5C,OAAO,EAAE,gCAAgC,EAAE,CAAM;IAMjD,WAAW,EAAE,MAAM,CAAK;IAWxB,QAAQ,EAAE,qBAAqB,CAK7B;CACH;AAED,MAAM,MAAM,gCAAgC,GAAG,mBAAmB,GAAG;KAElE,CAAC,IAAI,MAAM,IAAI,CAAC,yBAAyB,EACtC,IAAI,GACJ,WAAW,GACX,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,GACf,SAAS,CACZ,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;CAClC,CAAC"}
@@ -224,7 +224,12 @@ __decorate([
224
224
  class CampaignClaimAnalyticsResponseDTO {
225
225
  results = [];
226
226
  totalGroups = 0;
227
- metadata = {};
227
+ metadata = {
228
+ dateRange: {
229
+ startDate: new Date(),
230
+ endDate: new Date()
231
+ }
232
+ };
228
233
  }
229
234
  exports.CampaignClaimAnalyticsResponseDTO = CampaignClaimAnalyticsResponseDTO;
230
235
  __decorate([
@@ -248,7 +253,7 @@ __decorate([
248
253
  ], CampaignClaimAnalyticsResponseDTO.prototype, "totalGroups", void 0);
249
254
  __decorate([
250
255
  (0, swagger_1.ApiProperty)({
251
- description: 'Query metadata showing applied filters',
256
+ description: 'Query metadata showing applied date range (always present)',
252
257
  example: {
253
258
  dateRange: {
254
259
  startDate: '2024-01-01T00:00:00.000Z',