@explorins/pers-shared 2.1.79 → 2.1.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics.dto.js +14 -14
- package/dist/cjs/shared-lib/dto/campaign/campaign-claim-analytics.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/user-analytics.dto.d.ts +3 -0
- package/dist/cjs/shared-lib/dto/user-analytics.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user-analytics.dto.js +33 -9
- package/dist/cjs/shared-lib/dto/user-analytics.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics.dto.js +14 -14
- package/dist/esm/shared-lib/dto/campaign/campaign-claim-analytics.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/user-analytics.dto.d.ts +3 -0
- package/dist/esm/shared-lib/dto/user-analytics.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user-analytics.dto.js +30 -9
- package/dist/esm/shared-lib/dto/user-analytics.dto.js.map +1 -1
- package/package.json +1 -1
|
@@ -50,21 +50,21 @@ class CampaignClaimAnalyticsDTO {
|
|
|
50
50
|
exports.CampaignClaimAnalyticsDTO = CampaignClaimAnalyticsDTO;
|
|
51
51
|
__decorate([
|
|
52
52
|
(0, swagger_1.ApiProperty)({
|
|
53
|
-
description: 'Unique claim ID',
|
|
53
|
+
description: 'Unique claim ID (UUID) - primary identifier for this claim record',
|
|
54
54
|
example: 'claim-uuid-123'
|
|
55
55
|
}),
|
|
56
56
|
__metadata("design:type", String)
|
|
57
57
|
], CampaignClaimAnalyticsDTO.prototype, "id", void 0);
|
|
58
58
|
__decorate([
|
|
59
59
|
(0, swagger_1.ApiProperty)({
|
|
60
|
-
description: 'Timestamp when claim was created',
|
|
60
|
+
description: 'Timestamp when claim was created (ISO 8601 format). Used for time-based analytics and filtering.',
|
|
61
61
|
type: Date
|
|
62
62
|
}),
|
|
63
63
|
__metadata("design:type", Object)
|
|
64
64
|
], CampaignClaimAnalyticsDTO.prototype, "createdAt", void 0);
|
|
65
65
|
__decorate([
|
|
66
66
|
(0, swagger_1.ApiPropertyOptional)({
|
|
67
|
-
description: 'User ID - foreign key for
|
|
67
|
+
description: 'User ID (UUID) who made the claim - foreign key reference. Use for user-based grouping and aggregations.',
|
|
68
68
|
type: String,
|
|
69
69
|
nullable: true,
|
|
70
70
|
example: 'user-uuid-123'
|
|
@@ -73,7 +73,7 @@ __decorate([
|
|
|
73
73
|
], CampaignClaimAnalyticsDTO.prototype, "userId", void 0);
|
|
74
74
|
__decorate([
|
|
75
75
|
(0, swagger_1.ApiPropertyOptional)({
|
|
76
|
-
description: 'Campaign ID - foreign key for
|
|
76
|
+
description: 'Campaign ID (UUID) that was claimed - foreign key reference. Use for campaign performance analytics and grouping.',
|
|
77
77
|
type: String,
|
|
78
78
|
nullable: true,
|
|
79
79
|
example: 'campaign-uuid-456'
|
|
@@ -82,7 +82,7 @@ __decorate([
|
|
|
82
82
|
], CampaignClaimAnalyticsDTO.prototype, "campaignId", void 0);
|
|
83
83
|
__decorate([
|
|
84
84
|
(0, swagger_1.ApiPropertyOptional)({
|
|
85
|
-
description: 'Business ID - foreign key for
|
|
85
|
+
description: 'Business ID (UUID) associated with the claim - foreign key reference. Use for business-level analytics and grouping.',
|
|
86
86
|
type: String,
|
|
87
87
|
nullable: true,
|
|
88
88
|
example: 'business-uuid-789'
|
|
@@ -91,7 +91,7 @@ __decorate([
|
|
|
91
91
|
], CampaignClaimAnalyticsDTO.prototype, "businessId", void 0);
|
|
92
92
|
__decorate([
|
|
93
93
|
(0, swagger_1.ApiPropertyOptional)({
|
|
94
|
-
description: 'Trigger Source ID -
|
|
94
|
+
description: 'Trigger Source ID (UUID) - the specific trigger (QR code, geofence, etc.) that initiated the claim. Use for trigger effectiveness analytics.',
|
|
95
95
|
type: String,
|
|
96
96
|
nullable: true,
|
|
97
97
|
example: 'trigger-uuid-101'
|
|
@@ -100,7 +100,7 @@ __decorate([
|
|
|
100
100
|
], CampaignClaimAnalyticsDTO.prototype, "triggerSourceId", void 0);
|
|
101
101
|
__decorate([
|
|
102
102
|
(0, swagger_1.ApiPropertyOptional)({
|
|
103
|
-
description: '
|
|
103
|
+
description: 'Full user object (enriched data) - includes email, wallet address, public profile. Only populated when "include=user" query parameter is provided. NULL if not requested to optimize response size.',
|
|
104
104
|
type: () => user_dto_1.UserDTO,
|
|
105
105
|
nullable: true
|
|
106
106
|
}),
|
|
@@ -108,7 +108,7 @@ __decorate([
|
|
|
108
108
|
], CampaignClaimAnalyticsDTO.prototype, "user", void 0);
|
|
109
109
|
__decorate([
|
|
110
110
|
(0, swagger_1.ApiPropertyOptional)({
|
|
111
|
-
description: '
|
|
111
|
+
description: 'Full campaign object (enriched data) - includes name, description, token rewards. Only populated when "include=campaign" query parameter is provided. NULL if not requested to optimize response size.',
|
|
112
112
|
type: () => campaign_dto_1.CampaignDTO,
|
|
113
113
|
nullable: true
|
|
114
114
|
}),
|
|
@@ -116,7 +116,7 @@ __decorate([
|
|
|
116
116
|
], CampaignClaimAnalyticsDTO.prototype, "campaign", void 0);
|
|
117
117
|
__decorate([
|
|
118
118
|
(0, swagger_1.ApiPropertyOptional)({
|
|
119
|
-
description: '
|
|
119
|
+
description: 'Full business object (enriched data) - includes business name, location, logo. Only populated when "include=business" query parameter is provided. NULL if not requested to optimize response size.',
|
|
120
120
|
type: () => business_dto_1.BusinessDTO,
|
|
121
121
|
nullable: true
|
|
122
122
|
}),
|
|
@@ -124,7 +124,7 @@ __decorate([
|
|
|
124
124
|
], CampaignClaimAnalyticsDTO.prototype, "business", void 0);
|
|
125
125
|
__decorate([
|
|
126
126
|
(0, swagger_1.ApiPropertyOptional)({
|
|
127
|
-
description: '
|
|
127
|
+
description: 'Full trigger source object (enriched data) - includes trigger type, location, configuration. Only populated when "include=triggerSource" query parameter is provided. NULL if not requested to optimize response size.',
|
|
128
128
|
type: () => trigger_source_dto_1.TriggerSourceDTO,
|
|
129
129
|
nullable: true
|
|
130
130
|
}),
|
|
@@ -132,7 +132,7 @@ __decorate([
|
|
|
132
132
|
], CampaignClaimAnalyticsDTO.prototype, "triggerSource", void 0);
|
|
133
133
|
__decorate([
|
|
134
134
|
(0, swagger_1.ApiProperty)({
|
|
135
|
-
description: 'Processing status of the claim',
|
|
135
|
+
description: 'Processing status of the claim lifecycle: PENDING (created, awaiting blockchain), PROCESSING (blockchain transaction in progress), COMPLETED (tokens delivered successfully), FAILED (error occurred). Filter by COMPLETED for successful claims in analytics.',
|
|
136
136
|
enum: enum_1.ProcessRecordStatus,
|
|
137
137
|
example: enum_1.ProcessRecordStatus.COMPLETED
|
|
138
138
|
}),
|
|
@@ -140,7 +140,7 @@ __decorate([
|
|
|
140
140
|
], CampaignClaimAnalyticsDTO.prototype, "status", void 0);
|
|
141
141
|
__decorate([
|
|
142
142
|
(0, swagger_1.ApiPropertyOptional)({
|
|
143
|
-
description: '
|
|
143
|
+
description: 'ISO 3166-1 alpha-2 country code of the user at time of claim (derived from IP geolocation). Used for geographic analytics and compliance reporting.',
|
|
144
144
|
type: String,
|
|
145
145
|
nullable: true,
|
|
146
146
|
example: 'US'
|
|
@@ -149,7 +149,7 @@ __decorate([
|
|
|
149
149
|
], CampaignClaimAnalyticsDTO.prototype, "userCountryCode", void 0);
|
|
150
150
|
__decorate([
|
|
151
151
|
(0, swagger_1.ApiPropertyOptional)({
|
|
152
|
-
description: 'Latitude coordinate of claim location',
|
|
152
|
+
description: 'Latitude coordinate (decimal degrees) of claim location. Combined with longitude for geospatial analytics, heatmaps, and location-based insights. NULL if location not available.',
|
|
153
153
|
type: Number,
|
|
154
154
|
nullable: true,
|
|
155
155
|
example: 47.6062
|
|
@@ -158,7 +158,7 @@ __decorate([
|
|
|
158
158
|
], CampaignClaimAnalyticsDTO.prototype, "latitude", void 0);
|
|
159
159
|
__decorate([
|
|
160
160
|
(0, swagger_1.ApiPropertyOptional)({
|
|
161
|
-
description: 'Longitude coordinate of claim location',
|
|
161
|
+
description: 'Longitude coordinate (decimal degrees) of claim location. Combined with latitude for geospatial analytics, heatmaps, and location-based insights. NULL if location not available.',
|
|
162
162
|
type: Number,
|
|
163
163
|
nullable: true,
|
|
164
164
|
example: -122.3321
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-claim-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qCAAiD;AACjD,0CAAsC;AACtC,iDAA6C;AAC7C,2DAAuD;AACvD,6DAAwD;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAa,yBAAyB;IAKpC,EAAE,GAAW,EAAE,CAAC;IAMhB,SAAS,GAAgB,IAAI,CAAC;IAQ9B,MAAM,GAAkB,IAAI,CAAC;IAQ7B,UAAU,GAAkB,IAAI,CAAC;IAQjC,UAAU,GAAkB,IAAI,CAAC;IAQjC,eAAe,GAAkB,IAAI,CAAC;IAOtC,IAAI,GAAmB,IAAI,CAAC;IAO5B,QAAQ,GAAuB,IAAI,CAAC;IAOpC,QAAQ,CAAsB;IAO9B,aAAa,CAA2B;IAOxC,MAAM,GAAwB,0BAAmB,CAAC,OAAO,CAAC;IAQ1D,eAAe,GAAkB,IAAI,CAAC;IAQtC,QAAQ,GAAkB,IAAI,CAAC;IAQ/B,SAAS,GAAkB,IAAI,CAAC;IAOhC,OAAO,CAAiB;CACzB;AA9GD,8DA8GC;AAzGC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"campaign-claim-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,9 @@ export declare class UserAnalyticsResponseDTO {
|
|
|
26
26
|
totalTransactionVolume: number;
|
|
27
27
|
averageClaimsPerUser: number;
|
|
28
28
|
averageRedemptionsPerUser: number;
|
|
29
|
+
averageTransactionsPerActiveUser: number;
|
|
30
|
+
averageClaimsPerActiveUser: number;
|
|
31
|
+
averageRedemptionsPerActiveUser: number;
|
|
29
32
|
engagementRate: number;
|
|
30
33
|
periodBreakdown?: {
|
|
31
34
|
date: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,uBAAuB;IAKlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAMf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;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;
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,uBAAuB;IAKlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAMf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;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;IAqBJ,QAAQ,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,CAAC;KACH,CAA0B;CAC5B"}
|
|
@@ -61,6 +61,9 @@ class UserAnalyticsResponseDTO {
|
|
|
61
61
|
totalTransactionVolume = 0;
|
|
62
62
|
averageClaimsPerUser = 0;
|
|
63
63
|
averageRedemptionsPerUser = 0;
|
|
64
|
+
averageTransactionsPerActiveUser = 0;
|
|
65
|
+
averageClaimsPerActiveUser = 0;
|
|
66
|
+
averageRedemptionsPerActiveUser = 0;
|
|
64
67
|
engagementRate = 0;
|
|
65
68
|
periodBreakdown;
|
|
66
69
|
metadata = { executionTimeMs: 0 };
|
|
@@ -68,63 +71,84 @@ class UserAnalyticsResponseDTO {
|
|
|
68
71
|
exports.UserAnalyticsResponseDTO = UserAnalyticsResponseDTO;
|
|
69
72
|
__decorate([
|
|
70
73
|
(0, swagger_1.ApiProperty)({
|
|
71
|
-
description: 'Total number of registered users',
|
|
74
|
+
description: 'Total number of registered users (all-time, no date filter applied). Includes all non-deleted users regardless of activity.',
|
|
72
75
|
example: 10523
|
|
73
76
|
}),
|
|
74
77
|
__metadata("design:type", Number)
|
|
75
78
|
], UserAnalyticsResponseDTO.prototype, "totalUsers", void 0);
|
|
76
79
|
__decorate([
|
|
77
80
|
(0, swagger_1.ApiProperty)({
|
|
78
|
-
description: 'Number of active users
|
|
81
|
+
description: 'Number of active users - users with ≥1 successful transaction (status=succeeded), completed claim (status=COMPLETED), or completed redemption (status=COMPLETED) within the specified date range. If no date range provided, counts users with any activity ever.',
|
|
79
82
|
example: 3241
|
|
80
83
|
}),
|
|
81
84
|
__metadata("design:type", Number)
|
|
82
85
|
], UserAnalyticsResponseDTO.prototype, "activeUsers", void 0);
|
|
83
86
|
__decorate([
|
|
84
87
|
(0, swagger_1.ApiProperty)({
|
|
85
|
-
description: 'Number of new users created
|
|
88
|
+
description: 'Number of new users created within the specified date range (filtered by user.createdAt). If no date range provided, equals totalUsers.',
|
|
86
89
|
example: 156
|
|
87
90
|
}),
|
|
88
91
|
__metadata("design:type", Number)
|
|
89
92
|
], UserAnalyticsResponseDTO.prototype, "newUsers", void 0);
|
|
90
93
|
__decorate([
|
|
91
94
|
(0, swagger_1.ApiProperty)({
|
|
92
|
-
description: 'Average
|
|
95
|
+
description: 'Average transactions per user across entire user base (total successful transactions in date range ÷ total users). Only counts transactions with status=succeeded, excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types to prevent double-counting.',
|
|
93
96
|
example: 12.5
|
|
94
97
|
}),
|
|
95
98
|
__metadata("design:type", Number)
|
|
96
99
|
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerUser", void 0);
|
|
97
100
|
__decorate([
|
|
98
101
|
(0, swagger_1.ApiProperty)({
|
|
99
|
-
description: 'Average transaction
|
|
102
|
+
description: 'Average amount per transaction (total transaction volume ÷ transaction count). Only includes successful transactions (status=succeeded) in date range.',
|
|
100
103
|
example: 45.67
|
|
101
104
|
}),
|
|
102
105
|
__metadata("design:type", Number)
|
|
103
106
|
], UserAnalyticsResponseDTO.prototype, "averageTransactionAmount", void 0);
|
|
104
107
|
__decorate([
|
|
105
108
|
(0, swagger_1.ApiProperty)({
|
|
106
|
-
description: 'Total transaction volume
|
|
109
|
+
description: 'Total transaction volume - sum of all successful transaction amounts (status=succeeded) in date range. Excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types.',
|
|
107
110
|
example: 56789.12
|
|
108
111
|
}),
|
|
109
112
|
__metadata("design:type", Number)
|
|
110
113
|
], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
|
|
111
114
|
__decorate([
|
|
112
115
|
(0, swagger_1.ApiProperty)({
|
|
113
|
-
description: 'Average
|
|
116
|
+
description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
|
|
114
117
|
example: 3.2
|
|
115
118
|
}),
|
|
116
119
|
__metadata("design:type", Number)
|
|
117
120
|
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
|
|
118
121
|
__decorate([
|
|
119
122
|
(0, swagger_1.ApiProperty)({
|
|
120
|
-
description: 'Average
|
|
123
|
+
description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
|
|
121
124
|
example: 1.8
|
|
122
125
|
}),
|
|
123
126
|
__metadata("design:type", Number)
|
|
124
127
|
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
|
|
125
128
|
__decorate([
|
|
126
129
|
(0, swagger_1.ApiProperty)({
|
|
127
|
-
description: '
|
|
130
|
+
description: 'Average transactions per active user (total successful transactions in date range ÷ active users in date range). Provides more accurate engagement metric than averageTransactionsPerUser by excluding inactive users.',
|
|
131
|
+
example: 15.3
|
|
132
|
+
}),
|
|
133
|
+
__metadata("design:type", Number)
|
|
134
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerActiveUser", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, swagger_1.ApiProperty)({
|
|
137
|
+
description: 'Average claims per active user (total completed claims in date range ÷ active users in date range). Shows claim activity concentrated among engaged users.',
|
|
138
|
+
example: 4.7
|
|
139
|
+
}),
|
|
140
|
+
__metadata("design:type", Number)
|
|
141
|
+
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerActiveUser", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
(0, swagger_1.ApiProperty)({
|
|
144
|
+
description: 'Average redemptions per active user (total completed redemptions in date range ÷ active users in date range). Shows redemption activity concentrated among engaged users.',
|
|
145
|
+
example: 2.1
|
|
146
|
+
}),
|
|
147
|
+
__metadata("design:type", Number)
|
|
148
|
+
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, swagger_1.ApiProperty)({
|
|
151
|
+
description: 'User engagement rate as percentage (activeUsers ÷ totalUsers × 100). Indicates what percentage of all registered users had activity in the date range.',
|
|
128
152
|
example: 30.79,
|
|
129
153
|
type: 'number'
|
|
130
154
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AAEnE;;;;;GAKG;AACH,MAAa,uBAAuB;IAKlC,SAAS,CAAQ;IAMjB,OAAO,CAAQ;IAMf,UAAU,CAAU;CACrB;AAlBD,0DAkBC;AAbC;IAJC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,sBAAsB;KAChC,CAAC;8BACU,IAAI;0DAAC;AAMjB;IAJC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,sBAAsB;KAChC,CAAC;8BACQ,IAAI;wDAAC;AAMf;IAJC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,cAAc;KACxB,CAAC;;2DACkB;AAGtB;;;;;;;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;
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,19 +43,19 @@ export class CampaignClaimAnalyticsDTO {
|
|
|
43
43
|
}
|
|
44
44
|
__decorate([
|
|
45
45
|
ApiProperty({
|
|
46
|
-
description: 'Unique claim ID',
|
|
46
|
+
description: 'Unique claim ID (UUID) - primary identifier for this claim record',
|
|
47
47
|
example: 'claim-uuid-123'
|
|
48
48
|
})
|
|
49
49
|
], CampaignClaimAnalyticsDTO.prototype, "id", void 0);
|
|
50
50
|
__decorate([
|
|
51
51
|
ApiProperty({
|
|
52
|
-
description: 'Timestamp when claim was created',
|
|
52
|
+
description: 'Timestamp when claim was created (ISO 8601 format). Used for time-based analytics and filtering.',
|
|
53
53
|
type: Date
|
|
54
54
|
})
|
|
55
55
|
], CampaignClaimAnalyticsDTO.prototype, "createdAt", void 0);
|
|
56
56
|
__decorate([
|
|
57
57
|
ApiPropertyOptional({
|
|
58
|
-
description: 'User ID - foreign key for
|
|
58
|
+
description: 'User ID (UUID) who made the claim - foreign key reference. Use for user-based grouping and aggregations.',
|
|
59
59
|
type: String,
|
|
60
60
|
nullable: true,
|
|
61
61
|
example: 'user-uuid-123'
|
|
@@ -63,7 +63,7 @@ __decorate([
|
|
|
63
63
|
], CampaignClaimAnalyticsDTO.prototype, "userId", void 0);
|
|
64
64
|
__decorate([
|
|
65
65
|
ApiPropertyOptional({
|
|
66
|
-
description: 'Campaign ID - foreign key for
|
|
66
|
+
description: 'Campaign ID (UUID) that was claimed - foreign key reference. Use for campaign performance analytics and grouping.',
|
|
67
67
|
type: String,
|
|
68
68
|
nullable: true,
|
|
69
69
|
example: 'campaign-uuid-456'
|
|
@@ -71,7 +71,7 @@ __decorate([
|
|
|
71
71
|
], CampaignClaimAnalyticsDTO.prototype, "campaignId", void 0);
|
|
72
72
|
__decorate([
|
|
73
73
|
ApiPropertyOptional({
|
|
74
|
-
description: 'Business ID - foreign key for
|
|
74
|
+
description: 'Business ID (UUID) associated with the claim - foreign key reference. Use for business-level analytics and grouping.',
|
|
75
75
|
type: String,
|
|
76
76
|
nullable: true,
|
|
77
77
|
example: 'business-uuid-789'
|
|
@@ -79,7 +79,7 @@ __decorate([
|
|
|
79
79
|
], CampaignClaimAnalyticsDTO.prototype, "businessId", void 0);
|
|
80
80
|
__decorate([
|
|
81
81
|
ApiPropertyOptional({
|
|
82
|
-
description: 'Trigger Source ID -
|
|
82
|
+
description: 'Trigger Source ID (UUID) - the specific trigger (QR code, geofence, etc.) that initiated the claim. Use for trigger effectiveness analytics.',
|
|
83
83
|
type: String,
|
|
84
84
|
nullable: true,
|
|
85
85
|
example: 'trigger-uuid-101'
|
|
@@ -87,42 +87,42 @@ __decorate([
|
|
|
87
87
|
], CampaignClaimAnalyticsDTO.prototype, "triggerSourceId", void 0);
|
|
88
88
|
__decorate([
|
|
89
89
|
ApiPropertyOptional({
|
|
90
|
-
description: '
|
|
90
|
+
description: 'Full user object (enriched data) - includes email, wallet address, public profile. Only populated when "include=user" query parameter is provided. NULL if not requested to optimize response size.',
|
|
91
91
|
type: () => UserDTO,
|
|
92
92
|
nullable: true
|
|
93
93
|
})
|
|
94
94
|
], CampaignClaimAnalyticsDTO.prototype, "user", void 0);
|
|
95
95
|
__decorate([
|
|
96
96
|
ApiPropertyOptional({
|
|
97
|
-
description: '
|
|
97
|
+
description: 'Full campaign object (enriched data) - includes name, description, token rewards. Only populated when "include=campaign" query parameter is provided. NULL if not requested to optimize response size.',
|
|
98
98
|
type: () => CampaignDTO,
|
|
99
99
|
nullable: true
|
|
100
100
|
})
|
|
101
101
|
], CampaignClaimAnalyticsDTO.prototype, "campaign", void 0);
|
|
102
102
|
__decorate([
|
|
103
103
|
ApiPropertyOptional({
|
|
104
|
-
description: '
|
|
104
|
+
description: 'Full business object (enriched data) - includes business name, location, logo. Only populated when "include=business" query parameter is provided. NULL if not requested to optimize response size.',
|
|
105
105
|
type: () => BusinessDTO,
|
|
106
106
|
nullable: true
|
|
107
107
|
})
|
|
108
108
|
], CampaignClaimAnalyticsDTO.prototype, "business", void 0);
|
|
109
109
|
__decorate([
|
|
110
110
|
ApiPropertyOptional({
|
|
111
|
-
description: '
|
|
111
|
+
description: 'Full trigger source object (enriched data) - includes trigger type, location, configuration. Only populated when "include=triggerSource" query parameter is provided. NULL if not requested to optimize response size.',
|
|
112
112
|
type: () => TriggerSourceDTO,
|
|
113
113
|
nullable: true
|
|
114
114
|
})
|
|
115
115
|
], CampaignClaimAnalyticsDTO.prototype, "triggerSource", void 0);
|
|
116
116
|
__decorate([
|
|
117
117
|
ApiProperty({
|
|
118
|
-
description: 'Processing status of the claim',
|
|
118
|
+
description: 'Processing status of the claim lifecycle: PENDING (created, awaiting blockchain), PROCESSING (blockchain transaction in progress), COMPLETED (tokens delivered successfully), FAILED (error occurred). Filter by COMPLETED for successful claims in analytics.',
|
|
119
119
|
enum: ProcessRecordStatus,
|
|
120
120
|
example: ProcessRecordStatus.COMPLETED
|
|
121
121
|
})
|
|
122
122
|
], CampaignClaimAnalyticsDTO.prototype, "status", void 0);
|
|
123
123
|
__decorate([
|
|
124
124
|
ApiPropertyOptional({
|
|
125
|
-
description: '
|
|
125
|
+
description: 'ISO 3166-1 alpha-2 country code of the user at time of claim (derived from IP geolocation). Used for geographic analytics and compliance reporting.',
|
|
126
126
|
type: String,
|
|
127
127
|
nullable: true,
|
|
128
128
|
example: 'US'
|
|
@@ -130,7 +130,7 @@ __decorate([
|
|
|
130
130
|
], CampaignClaimAnalyticsDTO.prototype, "userCountryCode", void 0);
|
|
131
131
|
__decorate([
|
|
132
132
|
ApiPropertyOptional({
|
|
133
|
-
description: 'Latitude coordinate of claim location',
|
|
133
|
+
description: 'Latitude coordinate (decimal degrees) of claim location. Combined with longitude for geospatial analytics, heatmaps, and location-based insights. NULL if location not available.',
|
|
134
134
|
type: Number,
|
|
135
135
|
nullable: true,
|
|
136
136
|
example: 47.6062
|
|
@@ -138,7 +138,7 @@ __decorate([
|
|
|
138
138
|
], CampaignClaimAnalyticsDTO.prototype, "latitude", void 0);
|
|
139
139
|
__decorate([
|
|
140
140
|
ApiPropertyOptional({
|
|
141
|
-
description: 'Longitude coordinate of claim location',
|
|
141
|
+
description: 'Longitude coordinate (decimal degrees) of claim location. Combined with latitude for geospatial analytics, heatmaps, and location-based insights. NULL if location not available.',
|
|
142
142
|
type: Number,
|
|
143
143
|
nullable: true,
|
|
144
144
|
example: -122.3321
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-claim-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,yBAAyB;IAKpC,EAAE,GAAW,EAAE,CAAC;IAMhB,SAAS,GAAgB,IAAI,CAAC;IAQ9B,MAAM,GAAkB,IAAI,CAAC;IAQ7B,UAAU,GAAkB,IAAI,CAAC;IAQjC,UAAU,GAAkB,IAAI,CAAC;IAQjC,eAAe,GAAkB,IAAI,CAAC;IAOtC,IAAI,GAAmB,IAAI,CAAC;IAO5B,QAAQ,GAAuB,IAAI,CAAC;IAOpC,QAAQ,CAAsB;IAO9B,aAAa,CAA2B;IAOxC,MAAM,GAAwB,mBAAmB,CAAC,OAAO,CAAC;IAQ1D,eAAe,GAAkB,IAAI,CAAC;IAQtC,QAAQ,GAAkB,IAAI,CAAC;IAQ/B,SAAS,GAAkB,IAAI,CAAC;IAOhC,OAAO,CAAiB;CACzB;AAzGC;IAJC,WAAW,CAAC;QACX,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"campaign-claim-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaign-claim-analytics.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,9 @@ export declare class UserAnalyticsResponseDTO {
|
|
|
26
26
|
totalTransactionVolume: number;
|
|
27
27
|
averageClaimsPerUser: number;
|
|
28
28
|
averageRedemptionsPerUser: number;
|
|
29
|
+
averageTransactionsPerActiveUser: number;
|
|
30
|
+
averageClaimsPerActiveUser: number;
|
|
31
|
+
averageRedemptionsPerActiveUser: number;
|
|
29
32
|
engagementRate: number;
|
|
30
33
|
periodBreakdown?: {
|
|
31
34
|
date: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,uBAAuB;IAKlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAMf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;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;
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,uBAAuB;IAKlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAMf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;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;IAqBJ,QAAQ,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,CAAC;KACH,CAA0B;CAC5B"}
|
|
@@ -51,61 +51,82 @@ export class UserAnalyticsResponseDTO {
|
|
|
51
51
|
totalTransactionVolume = 0;
|
|
52
52
|
averageClaimsPerUser = 0;
|
|
53
53
|
averageRedemptionsPerUser = 0;
|
|
54
|
+
averageTransactionsPerActiveUser = 0;
|
|
55
|
+
averageClaimsPerActiveUser = 0;
|
|
56
|
+
averageRedemptionsPerActiveUser = 0;
|
|
54
57
|
engagementRate = 0;
|
|
55
58
|
periodBreakdown;
|
|
56
59
|
metadata = { executionTimeMs: 0 };
|
|
57
60
|
}
|
|
58
61
|
__decorate([
|
|
59
62
|
ApiProperty({
|
|
60
|
-
description: 'Total number of registered users',
|
|
63
|
+
description: 'Total number of registered users (all-time, no date filter applied). Includes all non-deleted users regardless of activity.',
|
|
61
64
|
example: 10523
|
|
62
65
|
})
|
|
63
66
|
], UserAnalyticsResponseDTO.prototype, "totalUsers", void 0);
|
|
64
67
|
__decorate([
|
|
65
68
|
ApiProperty({
|
|
66
|
-
description: 'Number of active users
|
|
69
|
+
description: 'Number of active users - users with ≥1 successful transaction (status=succeeded), completed claim (status=COMPLETED), or completed redemption (status=COMPLETED) within the specified date range. If no date range provided, counts users with any activity ever.',
|
|
67
70
|
example: 3241
|
|
68
71
|
})
|
|
69
72
|
], UserAnalyticsResponseDTO.prototype, "activeUsers", void 0);
|
|
70
73
|
__decorate([
|
|
71
74
|
ApiProperty({
|
|
72
|
-
description: 'Number of new users created
|
|
75
|
+
description: 'Number of new users created within the specified date range (filtered by user.createdAt). If no date range provided, equals totalUsers.',
|
|
73
76
|
example: 156
|
|
74
77
|
})
|
|
75
78
|
], UserAnalyticsResponseDTO.prototype, "newUsers", void 0);
|
|
76
79
|
__decorate([
|
|
77
80
|
ApiProperty({
|
|
78
|
-
description: 'Average
|
|
81
|
+
description: 'Average transactions per user across entire user base (total successful transactions in date range ÷ total users). Only counts transactions with status=succeeded, excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types to prevent double-counting.',
|
|
79
82
|
example: 12.5
|
|
80
83
|
})
|
|
81
84
|
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerUser", void 0);
|
|
82
85
|
__decorate([
|
|
83
86
|
ApiProperty({
|
|
84
|
-
description: 'Average transaction
|
|
87
|
+
description: 'Average amount per transaction (total transaction volume ÷ transaction count). Only includes successful transactions (status=succeeded) in date range.',
|
|
85
88
|
example: 45.67
|
|
86
89
|
})
|
|
87
90
|
], UserAnalyticsResponseDTO.prototype, "averageTransactionAmount", void 0);
|
|
88
91
|
__decorate([
|
|
89
92
|
ApiProperty({
|
|
90
|
-
description: 'Total transaction volume
|
|
93
|
+
description: 'Total transaction volume - sum of all successful transaction amounts (status=succeeded) in date range. Excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types.',
|
|
91
94
|
example: 56789.12
|
|
92
95
|
})
|
|
93
96
|
], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
|
|
94
97
|
__decorate([
|
|
95
98
|
ApiProperty({
|
|
96
|
-
description: 'Average
|
|
99
|
+
description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
|
|
97
100
|
example: 3.2
|
|
98
101
|
})
|
|
99
102
|
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
|
|
100
103
|
__decorate([
|
|
101
104
|
ApiProperty({
|
|
102
|
-
description: 'Average
|
|
105
|
+
description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
|
|
103
106
|
example: 1.8
|
|
104
107
|
})
|
|
105
108
|
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
|
|
106
109
|
__decorate([
|
|
107
110
|
ApiProperty({
|
|
108
|
-
description: '
|
|
111
|
+
description: 'Average transactions per active user (total successful transactions in date range ÷ active users in date range). Provides more accurate engagement metric than averageTransactionsPerUser by excluding inactive users.',
|
|
112
|
+
example: 15.3
|
|
113
|
+
})
|
|
114
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerActiveUser", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
ApiProperty({
|
|
117
|
+
description: 'Average claims per active user (total completed claims in date range ÷ active users in date range). Shows claim activity concentrated among engaged users.',
|
|
118
|
+
example: 4.7
|
|
119
|
+
})
|
|
120
|
+
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerActiveUser", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
ApiProperty({
|
|
123
|
+
description: 'Average redemptions per active user (total completed redemptions in date range ÷ active users in date range). Shows redemption activity concentrated among engaged users.',
|
|
124
|
+
example: 2.1
|
|
125
|
+
})
|
|
126
|
+
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
ApiProperty({
|
|
129
|
+
description: 'User engagement rate as percentage (activeUsers ÷ totalUsers × 100). Indicates what percentage of all registered users had activity in the date range.',
|
|
109
130
|
example: 30.79,
|
|
110
131
|
type: 'number'
|
|
111
132
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAKlC,SAAS,CAAQ;IAMjB,OAAO,CAAQ;IAMf,UAAU,CAAU;CACrB;AAbC;IAJC,mBAAmB,CAAC;QACnB,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,sBAAsB;KAChC,CAAC;0DACe;AAMjB;IAJC,mBAAmB,CAAC;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,sBAAsB;KAChC,CAAC;wDACa;AAMf;IAJC,mBAAmB,CAAC;QACnB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,cAAc;KACxB,CAAC;2DACkB;AAGtB;;;;;;;GAOG;AACH,MAAM,OAAO,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;
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"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"}
|