@explorins/pers-shared 2.1.80 → 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 (89) 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 +38 -0
  6. package/dist/cjs/shared-lib/dto/analytics/base-analytics.dto.d.ts.map +1 -0
  7. package/dist/cjs/shared-lib/dto/analytics/base-analytics.dto.js +53 -0
  8. package/dist/cjs/shared-lib/dto/analytics/base-analytics.dto.js.map +1 -0
  9. package/dist/cjs/shared-lib/dto/{campaign → analytics}/campaign-claim-analytics.dto.d.ts +2 -2
  10. package/dist/cjs/shared-lib/dto/analytics/campaign-claim-analytics.dto.d.ts.map +1 -0
  11. package/dist/cjs/shared-lib/dto/{campaign → analytics}/campaign-claim-analytics.dto.js +2 -2
  12. package/dist/cjs/shared-lib/dto/analytics/campaign-claim-analytics.dto.js.map +1 -0
  13. package/dist/cjs/shared-lib/dto/{transaction → analytics}/transaction-analytics.request.dto.d.ts +4 -5
  14. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -0
  15. package/dist/cjs/shared-lib/dto/{transaction → analytics}/transaction-analytics.request.dto.js +19 -10
  16. package/dist/cjs/shared-lib/dto/analytics/transaction-analytics.request.dto.js.map +1 -0
  17. package/dist/cjs/shared-lib/dto/{user-analytics.dto.d.ts → analytics/user-analytics.dto.d.ts} +16 -10
  18. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -0
  19. package/dist/cjs/shared-lib/dto/{user-analytics.dto.js → analytics/user-analytics.dto.js} +56 -21
  20. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -0
  21. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts +71 -0
  22. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts.map +1 -0
  23. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.js +242 -0
  24. package/dist/cjs/shared-lib/dto/analytics/user-ranking-analytics.dto.js.map +1 -0
  25. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts +3 -4
  26. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  27. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js +12 -4
  28. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js.map +1 -1
  29. package/dist/cjs/shared-lib/dto/index.d.ts +4 -2
  30. package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
  31. package/dist/cjs/shared-lib/dto/index.js +4 -2
  32. package/dist/cjs/shared-lib/dto/index.js.map +1 -1
  33. package/dist/cjs/shared-lib/dto/transaction/index.d.ts +1 -1
  34. package/dist/cjs/shared-lib/dto/transaction/index.d.ts.map +1 -1
  35. package/dist/cjs/shared-lib/dto/transaction/index.js +1 -1
  36. package/dist/cjs/shared-lib/dto/transaction/index.js.map +1 -1
  37. package/dist/cjs/shared-lib/interfaces/transaction-analytics-request.interface.d.ts +1 -1
  38. package/dist/cjs/shared-lib/interfaces/transaction-analytics-request.interface.d.ts.map +1 -1
  39. package/dist/esm/index.d.ts +1 -1
  40. package/dist/esm/index.d.ts.map +1 -1
  41. package/dist/esm/index.js +1 -0
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.d.ts +38 -0
  44. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.d.ts.map +1 -0
  45. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.js +43 -0
  46. package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.js.map +1 -0
  47. package/dist/esm/shared-lib/dto/{campaign → analytics}/campaign-claim-analytics.dto.d.ts +2 -2
  48. package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics.dto.d.ts.map +1 -0
  49. package/dist/esm/shared-lib/dto/{campaign → analytics}/campaign-claim-analytics.dto.js +2 -2
  50. package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics.dto.js.map +1 -0
  51. package/dist/esm/shared-lib/dto/{transaction → analytics}/transaction-analytics.request.dto.d.ts +4 -5
  52. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.d.ts.map +1 -0
  53. package/dist/esm/shared-lib/dto/{transaction → analytics}/transaction-analytics.request.dto.js +19 -10
  54. package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.js.map +1 -0
  55. package/dist/esm/shared-lib/dto/{user-analytics.dto.d.ts → analytics/user-analytics.dto.d.ts} +16 -10
  56. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -0
  57. package/dist/esm/shared-lib/dto/{user-analytics.dto.js → analytics/user-analytics.dto.js} +54 -21
  58. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -0
  59. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts +71 -0
  60. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.d.ts.map +1 -0
  61. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.js +215 -0
  62. package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.js.map +1 -0
  63. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts +3 -4
  64. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.d.ts.map +1 -1
  65. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js +12 -4
  66. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics-request.dto.js.map +1 -1
  67. package/dist/esm/shared-lib/dto/index.d.ts +4 -2
  68. package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
  69. package/dist/esm/shared-lib/dto/index.js +4 -2
  70. package/dist/esm/shared-lib/dto/index.js.map +1 -1
  71. package/dist/esm/shared-lib/dto/transaction/index.d.ts +1 -1
  72. package/dist/esm/shared-lib/dto/transaction/index.d.ts.map +1 -1
  73. package/dist/esm/shared-lib/dto/transaction/index.js +1 -1
  74. package/dist/esm/shared-lib/dto/transaction/index.js.map +1 -1
  75. package/dist/esm/shared-lib/interfaces/transaction-analytics-request.interface.d.ts +1 -1
  76. package/dist/esm/shared-lib/interfaces/transaction-analytics-request.interface.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics.dto.d.ts.map +0 -1
  79. package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics.dto.js.map +0 -1
  80. package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts.map +0 -1
  81. package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.js.map +0 -1
  82. package/dist/cjs/shared-lib/dto/user-analytics.dto.d.ts.map +0 -1
  83. package/dist/cjs/shared-lib/dto/user-analytics.dto.js.map +0 -1
  84. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics.dto.d.ts.map +0 -1
  85. package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics.dto.js.map +0 -1
  86. package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts.map +0 -1
  87. package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.js.map +0 -1
  88. package/dist/esm/shared-lib/dto/user-analytics.dto.d.ts.map +0 -1
  89. package/dist/esm/shared-lib/dto/user-analytics.dto.js.map +0 -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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * BASE ANALYTICS REQUEST
3
+ *
4
+ * Common date range filtering for all analytics endpoints.
5
+ * Extend this for consistent API patterns across analytics.
6
+ */
7
+ export declare abstract class BaseAnalyticsRequestDTO {
8
+ startDate?: Date;
9
+ endDate?: Date;
10
+ }
11
+ /**
12
+ * BASE ANALYTICS RESPONSE METADATA
13
+ *
14
+ * Common metadata structure for all analytics responses.
15
+ * Shows applied filters for transparency.
16
+ *
17
+ * Note: Execution time removed - client can measure total request time using performance.now()
18
+ * which includes network latency and is more relevant for UX monitoring.
19
+ */
20
+ export interface BaseAnalyticsMetadata {
21
+ /**
22
+ * Applied date range filter (always present - uses current date as fallback if not provided in request)
23
+ */
24
+ dateRange: {
25
+ startDate: Date;
26
+ endDate: Date;
27
+ };
28
+ }
29
+ /**
30
+ * BASE ANALYTICS RESPONSE
31
+ *
32
+ * Common response structure for analytics endpoints.
33
+ * All analytics responses should include metadata with timing and filter info.
34
+ */
35
+ export declare abstract class BaseAnalyticsResponseDTO {
36
+ abstract metadata: BaseAnalyticsMetadata;
37
+ }
38
+ //# sourceMappingURL=base-analytics.dto.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,53 @@
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.BaseAnalyticsResponseDTO = exports.BaseAnalyticsRequestDTO = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * BASE ANALYTICS REQUEST
17
+ *
18
+ * Common date range filtering for all analytics endpoints.
19
+ * Extend this for consistent API patterns across analytics.
20
+ */
21
+ class BaseAnalyticsRequestDTO {
22
+ startDate;
23
+ endDate;
24
+ }
25
+ exports.BaseAnalyticsRequestDTO = BaseAnalyticsRequestDTO;
26
+ __decorate([
27
+ (0, swagger_1.ApiPropertyOptional)({
28
+ description: 'Start date for filtering (ISO 8601 format). Filters records with createdAt >= startDate.',
29
+ example: '2024-01-01T00:00:00.000Z'
30
+ }),
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsDateString)(),
33
+ __metadata("design:type", Date)
34
+ ], BaseAnalyticsRequestDTO.prototype, "startDate", void 0);
35
+ __decorate([
36
+ (0, swagger_1.ApiPropertyOptional)({
37
+ description: 'End date for filtering (ISO 8601 format). Filters records with createdAt <= endDate.',
38
+ example: '2024-12-31T23:59:59.999Z'
39
+ }),
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_validator_1.IsDateString)(),
42
+ __metadata("design:type", Date)
43
+ ], BaseAnalyticsRequestDTO.prototype, "endDate", void 0);
44
+ /**
45
+ * BASE ANALYTICS RESPONSE
46
+ *
47
+ * Common response structure for analytics endpoints.
48
+ * All analytics responses should include metadata with timing and filter info.
49
+ */
50
+ class BaseAnalyticsResponseDTO {
51
+ }
52
+ exports.BaseAnalyticsResponseDTO = BaseAnalyticsResponseDTO;
53
+ //# sourceMappingURL=base-analytics.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/base-analytics.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,qDAA2D;AAE3D;;;;;GAKG;AACH,MAAsB,uBAAuB;IAO3C,SAAS,CAAQ;IAQjB,OAAO,CAAQ;CAChB;AAhBD,0DAgBC;AATC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0FAA0F;QACvG,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACH,IAAI;0DAAC;AAQjB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sFAAsF;QACnG,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACL,IAAI;wDAAC;AAsBjB;;;;;GAKG;AACH,MAAsB,wBAAwB;CAE7C;AAFD,4DAEC"}
@@ -1,8 +1,8 @@
1
1
  import { ProcessRecordStatus } from "../../enum";
2
2
  import { UserDTO } from "../user.dto";
3
- import { CampaignDTO } from "./campaign.dto";
3
+ import { CampaignDTO } from "../campaign/campaign.dto";
4
4
  import { BusinessDTO } from "../business/business.dto";
5
- import { TriggerSourceDTO } from "./trigger-source.dto";
5
+ import { TriggerSourceDTO } from "../campaign/trigger-source.dto";
6
6
  /**
7
7
  * Campaign Claim Analytics DTO
8
8
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-claim-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/campaign-claim-analytics.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAAyB;IAKpC,EAAE,EAAE,MAAM,CAAM;IAMhB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAQ9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQ7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOtC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAQ;IAO5B,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAQ;IAOpC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAO9B,aAAa,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAOxC,MAAM,EAAE,mBAAmB,CAA+B;IAQ1D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQtC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQ/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOhC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
@@ -13,9 +13,9 @@ exports.CampaignClaimAnalyticsDTO = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
14
  const enum_1 = require("../../enum");
15
15
  const user_dto_1 = require("../user.dto");
16
- const campaign_dto_1 = require("./campaign.dto");
16
+ const campaign_dto_1 = require("../campaign/campaign.dto");
17
17
  const business_dto_1 = require("../business/business.dto");
18
- const trigger_source_dto_1 = require("./trigger-source.dto");
18
+ const trigger_source_dto_1 = require("../campaign/trigger-source.dto");
19
19
  /**
20
20
  * Campaign Claim Analytics DTO
21
21
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-claim-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/campaign-claim-analytics.dto.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { TransactionDTO } from './transaction.dto';
1
+ import { TransactionDTO } from '../transaction/transaction.dto';
2
2
  import { SortOrder } from '../../enum';
3
3
  import { AnalyticsGroupByType, AnalyticsMetricType, AnalyticsResultItem } from '../../types/analytics.type';
4
- import { GroupByExpressionDTO } from '../analytics/group-by-expression.dto';
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,9 +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
- executionTime: string;
40
- };
39
+ metadata: BaseAnalyticsMetadata;
41
40
  }
42
41
  export type TransactionAnalyticsResultItem = AnalyticsResultItem & {
43
42
  [K in keyof Omit<TransactionDTO, 'id' | 'createdAt' | 'updatedAt' | 'transactionHash'>]?: TransactionDTO[K];
@@ -0,0 +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,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"}
@@ -13,10 +13,11 @@ exports.TransactionAnalyticsResponseDTO = exports.TransactionAnalyticsRequestDTO
13
13
  const class_validator_1 = require("class-validator");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const swagger_1 = require("@nestjs/swagger");
16
- const transaction_dto_1 = require("./transaction.dto");
16
+ 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
- const group_by_expression_dto_1 = require("../analytics/group-by-expression.dto");
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
  }),
@@ -164,18 +165,21 @@ class TransactionAnalyticsResponseDTO {
164
165
  results = [];
165
166
  totalGroups = 0;
166
167
  metadata = {
167
- executionTime: '0ms'
168
+ dateRange: {
169
+ startDate: new Date(),
170
+ endDate: new Date()
171
+ }
168
172
  };
169
173
  }
170
174
  exports.TransactionAnalyticsResponseDTO = TransactionAnalyticsResponseDTO;
171
175
  __decorate([
172
176
  (0, swagger_1.ApiProperty)({
173
- 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.',
174
178
  type: 'array',
175
179
  example: [
176
180
  { userId: 'user-123', count: 45 },
177
181
  { userAddress: '0xabc...def', count: 32 },
178
- { 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' }
179
183
  ]
180
184
  }),
181
185
  __metadata("design:type", Array)
@@ -189,8 +193,13 @@ __decorate([
189
193
  ], TransactionAnalyticsResponseDTO.prototype, "totalGroups", void 0);
190
194
  __decorate([
191
195
  (0, swagger_1.ApiProperty)({
192
- description: 'Query execution metadata',
193
- example: { executionTime: '45ms' }
196
+ description: 'Query metadata showing applied date range (always present)',
197
+ example: {
198
+ dateRange: {
199
+ startDate: '2024-01-01T00:00:00.000Z',
200
+ endDate: '2024-12-31T23:59:59.999Z'
201
+ }
202
+ }
194
203
  }),
195
204
  __metadata("design:type", Object)
196
205
  ], TransactionAnalyticsResponseDTO.prototype, "metadata", void 0);
@@ -0,0 +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,13 +1,25 @@
1
+ import { BaseAnalyticsMetadata } from './base-analytics.dto';
2
+ /**
3
+ * USER ANALYTICS FILTERS DTO
4
+ *
5
+ * Filters to scope user analytics aggregations.
6
+ * Determines which users/activity to include in calculations.
7
+ */
8
+ export declare class UserAnalyticsFiltersDTO {
9
+ businessId?: string;
10
+ }
1
11
  /**
2
12
  * USER ANALYTICS REQUEST DTO
3
13
  *
4
- * Filters for user analytics queries.
5
- * Supports date range filtering and business-specific analytics.
14
+ * Request structure for user engagement analytics.
15
+ * Supports date range filtering and business-specific scoping.
16
+ *
17
+ * Pattern matches TransactionAnalyticsRequestDTO and CampaignClaimAnalyticsRequestDTO for consistency.
6
18
  */
7
19
  export declare class UserAnalyticsRequestDTO {
20
+ filters?: UserAnalyticsFiltersDTO;
8
21
  startDate?: Date;
9
22
  endDate?: Date;
10
- businessId?: string;
11
23
  }
12
24
  /**
13
25
  * USER ANALYTICS RESPONSE DTO
@@ -35,12 +47,6 @@ export declare class UserAnalyticsResponseDTO {
35
47
  activeUsers: number;
36
48
  newUsers: number;
37
49
  }[];
38
- metadata: {
39
- executionTimeMs: number;
40
- dateRange?: {
41
- startDate: Date;
42
- endDate: Date;
43
- };
44
- };
50
+ metadata: BaseAnalyticsMetadata;
45
51
  }
46
52
  //# sourceMappingURL=user-analytics.dto.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -9,41 +9,76 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserAnalyticsResponseDTO = exports.UserAnalyticsRequestDTO = void 0;
12
+ exports.UserAnalyticsResponseDTO = exports.UserAnalyticsRequestDTO = exports.UserAnalyticsFiltersDTO = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ const class_transformer_1 = require("class-transformer");
16
+ /**
17
+ * USER ANALYTICS FILTERS DTO
18
+ *
19
+ * Filters to scope user analytics aggregations.
20
+ * Determines which users/activity to include in calculations.
21
+ */
22
+ class UserAnalyticsFiltersDTO {
23
+ businessId;
24
+ }
25
+ exports.UserAnalyticsFiltersDTO = UserAnalyticsFiltersDTO;
26
+ __decorate([
27
+ (0, swagger_1.ApiPropertyOptional)({
28
+ description: 'Filter analytics to specific business (filters transactions, claims, redemptions by businessId)',
29
+ type: String,
30
+ format: 'uuid',
31
+ example: 'biz-uuid-123'
32
+ }),
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsString)(),
35
+ __metadata("design:type", String)
36
+ ], UserAnalyticsFiltersDTO.prototype, "businessId", void 0);
14
37
  /**
15
38
  * USER ANALYTICS REQUEST DTO
16
39
  *
17
- * Filters for user analytics queries.
18
- * Supports date range filtering and business-specific analytics.
40
+ * Request structure for user engagement analytics.
41
+ * Supports date range filtering and business-specific scoping.
42
+ *
43
+ * Pattern matches TransactionAnalyticsRequestDTO and CampaignClaimAnalyticsRequestDTO for consistency.
19
44
  */
20
45
  class UserAnalyticsRequestDTO {
46
+ filters;
21
47
  startDate;
22
48
  endDate;
23
- businessId;
24
49
  }
25
50
  exports.UserAnalyticsRequestDTO = UserAnalyticsRequestDTO;
26
51
  __decorate([
27
52
  (0, swagger_1.ApiPropertyOptional)({
28
- description: 'Start date for filtering (ISO 8601)',
53
+ description: 'Filters to scope which users/activity to include in analytics',
54
+ type: UserAnalyticsFiltersDTO,
55
+ example: {
56
+ businessId: 'biz-uuid-123'
57
+ }
58
+ }),
59
+ (0, class_validator_1.IsOptional)(),
60
+ (0, class_validator_1.ValidateNested)(),
61
+ (0, class_transformer_1.Type)(() => UserAnalyticsFiltersDTO),
62
+ __metadata("design:type", UserAnalyticsFiltersDTO)
63
+ ], UserAnalyticsRequestDTO.prototype, "filters", void 0);
64
+ __decorate([
65
+ (0, swagger_1.ApiPropertyOptional)({
66
+ description: 'Start date for filtering activity and new users (ISO 8601 format). Filters transactions, claims, redemptions, and user creation dates.',
29
67
  example: '2024-01-01T00:00:00Z'
30
68
  }),
69
+ (0, class_validator_1.IsOptional)(),
70
+ (0, class_validator_1.IsDateString)(),
31
71
  __metadata("design:type", Date)
32
72
  ], UserAnalyticsRequestDTO.prototype, "startDate", void 0);
33
73
  __decorate([
34
74
  (0, swagger_1.ApiPropertyOptional)({
35
- description: 'End date for filtering (ISO 8601)',
75
+ description: 'End date for filtering activity and new users (ISO 8601 format). Filters transactions, claims, redemptions, and user creation dates.',
36
76
  example: '2024-12-31T23:59:59Z'
37
77
  }),
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, class_validator_1.IsDateString)(),
38
80
  __metadata("design:type", Date)
39
81
  ], UserAnalyticsRequestDTO.prototype, "endDate", void 0);
40
- __decorate([
41
- (0, swagger_1.ApiPropertyOptional)({
42
- description: 'Filter by specific business ID',
43
- example: 'biz-uuid-123'
44
- }),
45
- __metadata("design:type", String)
46
- ], UserAnalyticsRequestDTO.prototype, "businessId", void 0);
47
82
  /**
48
83
  * USER ANALYTICS RESPONSE DTO
49
84
  *
@@ -66,7 +101,12 @@ class UserAnalyticsResponseDTO {
66
101
  averageRedemptionsPerActiveUser = 0;
67
102
  engagementRate = 0;
68
103
  periodBreakdown;
69
- metadata = { executionTimeMs: 0 };
104
+ metadata = {
105
+ dateRange: {
106
+ startDate: new Date(),
107
+ endDate: new Date()
108
+ }
109
+ };
70
110
  }
71
111
  exports.UserAnalyticsResponseDTO = UserAnalyticsResponseDTO;
72
112
  __decorate([
@@ -171,21 +211,16 @@ __decorate([
171
211
  ], UserAnalyticsResponseDTO.prototype, "periodBreakdown", void 0);
172
212
  __decorate([
173
213
  (0, swagger_1.ApiProperty)({
174
- description: 'Query execution metadata including timing and applied filters',
214
+ description: 'Query metadata showing applied date range (always present)',
175
215
  type: 'object',
176
216
  properties: {
177
- executionTimeMs: {
178
- type: 'number',
179
- example: 142,
180
- description: 'SQL query execution time in milliseconds (for performance monitoring)'
181
- },
182
217
  dateRange: {
183
218
  type: 'object',
184
219
  properties: {
185
220
  startDate: { type: 'string', format: 'date-time' },
186
221
  endDate: { type: 'string', format: 'date-time' }
187
222
  },
188
- description: 'Applied date range filter (only present if filters were used)'
223
+ description: 'Applied date range filter'
189
224
  }
190
225
  }
191
226
  }),
@@ -0,0 +1 @@
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"}