@explorins/pers-shared 2.1.78 → 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/index.d.ts +1 -0
- package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/index.js +1 -0
- package/dist/cjs/shared-lib/dto/index.js.map +1 -1
- package/dist/cjs/shared-lib/dto/user-analytics.dto.d.ts +46 -0
- package/dist/cjs/shared-lib/dto/user-analytics.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/user-analytics.dto.js +194 -0
- package/dist/cjs/shared-lib/dto/user-analytics.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/user.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/user.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user.dto.js +17 -0
- package/dist/cjs/shared-lib/dto/user.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/index.d.ts +1 -0
- package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/index.js +1 -0
- package/dist/esm/shared-lib/dto/index.js.map +1 -1
- package/dist/esm/shared-lib/dto/user-analytics.dto.d.ts +46 -0
- package/dist/esm/shared-lib/dto/user-analytics.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/user-analytics.dto.js +169 -0
- package/dist/esm/shared-lib/dto/user-analytics.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/user.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/user.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user.dto.js +15 -0
- package/dist/esm/shared-lib/dto/user.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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"}
|
|
@@ -6,6 +6,7 @@ export * from './tenant';
|
|
|
6
6
|
export * from './user.dto';
|
|
7
7
|
export * from './user.request.dto';
|
|
8
8
|
export * from './user-status-type.dto';
|
|
9
|
+
export * from './user-analytics.dto';
|
|
9
10
|
export * from './userUploadData.dto';
|
|
10
11
|
export * from './error-response.dto';
|
|
11
12
|
export * from './account-token-balances.dto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAKA,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAG1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAI9C,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAIlC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAKA,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAG1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAI9C,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAIlC,cAAc,SAAS,CAAC"}
|
|
@@ -28,6 +28,7 @@ __exportStar(require("./tenant"), exports);
|
|
|
28
28
|
__exportStar(require("./user.dto"), exports);
|
|
29
29
|
__exportStar(require("./user.request.dto"), exports);
|
|
30
30
|
__exportStar(require("./user-status-type.dto"), exports);
|
|
31
|
+
__exportStar(require("./user-analytics.dto"), exports);
|
|
31
32
|
__exportStar(require("./userUploadData.dto"), exports);
|
|
32
33
|
// Error Response DTOs
|
|
33
34
|
__exportStar(require("./error-response.dto"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,qFAAqF;;;;;;;;;;;;;;;;AAGrF,iBAAiB;AACjB,sEAAoD;AACpD,kEAAgD;AAEhD,YAAY;AACZ,yCAAuB;AAEvB,gBAAgB;AAChB,6CAA0B;AAE1B,YAAY;AACZ,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,yDAAuC;AACvC,uDAAqC;AAErC,sBAAsB;AACtB,uDAAqC;AACrC,+DAA6C;AAE7C,sDAAoC;AACpC,oDAAkC;AAClC,4CAA0B;AAC1B,+CAA6B;AAE7B,aAAa;AACb,0CAAwB;AAExB,mBAAmB;AACnB,gDAA8B;AAE9B,gBAAgB;AAChB,6CAA2B;AAG3B,kBAAkB;AAClB,+CAA6B;AAE7B,4CAAyB;AAEzB,gBAAgB;AAChB,0DAAwC;AACxC,gEAA8C;AAC9C,wEAAsD;AACtD,wEAAsD;AACtD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,kFAAgE;AAChE,0EAAwD;AACxD,mEAAiD;AACjD,sFAAoE;AACpE,8EAA4D;AAC5D,gEAA8C;AAG9C,uBAAuB;AACvB,oDAAiC;AAEjC,mBAAmB;AACnB,yDAAuC;AAEvC,aAAa;AACb,+CAA6B;AAE7B,oDAAkC;AAGlC,aAAa;AACb,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,qFAAqF;;;;;;;;;;;;;;;;AAGrF,iBAAiB;AACjB,sEAAoD;AACpD,kEAAgD;AAEhD,YAAY;AACZ,yCAAuB;AAEvB,gBAAgB;AAChB,6CAA0B;AAE1B,YAAY;AACZ,2CAAyB;AACzB,6CAA2B;AAC3B,qDAAmC;AACnC,yDAAuC;AACvC,uDAAqC;AACrC,uDAAqC;AAErC,sBAAsB;AACtB,uDAAqC;AACrC,+DAA6C;AAE7C,sDAAoC;AACpC,oDAAkC;AAClC,4CAA0B;AAC1B,+CAA6B;AAE7B,aAAa;AACb,0CAAwB;AAExB,mBAAmB;AACnB,gDAA8B;AAE9B,gBAAgB;AAChB,6CAA2B;AAG3B,kBAAkB;AAClB,+CAA6B;AAE7B,4CAAyB;AAEzB,gBAAgB;AAChB,0DAAwC;AACxC,gEAA8C;AAC9C,wEAAsD;AACtD,wEAAsD;AACtD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,kFAAgE;AAChE,0EAAwD;AACxD,mEAAiD;AACjD,sFAAoE;AACpE,8EAA4D;AAC5D,gEAA8C;AAG9C,uBAAuB;AACvB,oDAAiC;AAEjC,mBAAmB;AACnB,yDAAuC;AAEvC,aAAa;AACb,+CAA6B;AAE7B,oDAAkC;AAGlC,aAAa;AACb,0CAAwB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* USER ANALYTICS REQUEST DTO
|
|
3
|
+
*
|
|
4
|
+
* Filters for user analytics queries.
|
|
5
|
+
* Supports date range filtering and business-specific analytics.
|
|
6
|
+
*/
|
|
7
|
+
export declare class UserAnalyticsRequestDTO {
|
|
8
|
+
startDate?: Date;
|
|
9
|
+
endDate?: Date;
|
|
10
|
+
businessId?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* USER ANALYTICS RESPONSE DTO
|
|
14
|
+
*
|
|
15
|
+
* Aggregated user statistics and metrics.
|
|
16
|
+
* Uses ONLY database-stored data (user, transaction, campaign_user_claim tables).
|
|
17
|
+
*
|
|
18
|
+
* NOTE: Does NOT include blockchain balance data (fetched on-demand via Web3, not stored in DB).
|
|
19
|
+
*/
|
|
20
|
+
export declare class UserAnalyticsResponseDTO {
|
|
21
|
+
totalUsers: number;
|
|
22
|
+
activeUsers: number;
|
|
23
|
+
newUsers: number;
|
|
24
|
+
averageTransactionsPerUser: number;
|
|
25
|
+
averageTransactionAmount: number;
|
|
26
|
+
totalTransactionVolume: number;
|
|
27
|
+
averageClaimsPerUser: number;
|
|
28
|
+
averageRedemptionsPerUser: number;
|
|
29
|
+
averageTransactionsPerActiveUser: number;
|
|
30
|
+
averageClaimsPerActiveUser: number;
|
|
31
|
+
averageRedemptionsPerActiveUser: number;
|
|
32
|
+
engagementRate: number;
|
|
33
|
+
periodBreakdown?: {
|
|
34
|
+
date: string;
|
|
35
|
+
activeUsers: number;
|
|
36
|
+
newUsers: number;
|
|
37
|
+
}[];
|
|
38
|
+
metadata: {
|
|
39
|
+
executionTimeMs: number;
|
|
40
|
+
dateRange?: {
|
|
41
|
+
startDate: Date;
|
|
42
|
+
endDate: Date;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# 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/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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
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.UserAnalyticsResponseDTO = exports.UserAnalyticsRequestDTO = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
/**
|
|
15
|
+
* USER ANALYTICS REQUEST DTO
|
|
16
|
+
*
|
|
17
|
+
* Filters for user analytics queries.
|
|
18
|
+
* Supports date range filtering and business-specific analytics.
|
|
19
|
+
*/
|
|
20
|
+
class UserAnalyticsRequestDTO {
|
|
21
|
+
startDate;
|
|
22
|
+
endDate;
|
|
23
|
+
businessId;
|
|
24
|
+
}
|
|
25
|
+
exports.UserAnalyticsRequestDTO = UserAnalyticsRequestDTO;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
28
|
+
description: 'Start date for filtering (ISO 8601)',
|
|
29
|
+
example: '2024-01-01T00:00:00Z'
|
|
30
|
+
}),
|
|
31
|
+
__metadata("design:type", Date)
|
|
32
|
+
], UserAnalyticsRequestDTO.prototype, "startDate", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
35
|
+
description: 'End date for filtering (ISO 8601)',
|
|
36
|
+
example: '2024-12-31T23:59:59Z'
|
|
37
|
+
}),
|
|
38
|
+
__metadata("design:type", Date)
|
|
39
|
+
], 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
|
+
/**
|
|
48
|
+
* USER ANALYTICS RESPONSE DTO
|
|
49
|
+
*
|
|
50
|
+
* Aggregated user statistics and metrics.
|
|
51
|
+
* Uses ONLY database-stored data (user, transaction, campaign_user_claim tables).
|
|
52
|
+
*
|
|
53
|
+
* NOTE: Does NOT include blockchain balance data (fetched on-demand via Web3, not stored in DB).
|
|
54
|
+
*/
|
|
55
|
+
class UserAnalyticsResponseDTO {
|
|
56
|
+
totalUsers = 0;
|
|
57
|
+
activeUsers = 0;
|
|
58
|
+
newUsers = 0;
|
|
59
|
+
averageTransactionsPerUser = 0;
|
|
60
|
+
averageTransactionAmount = 0;
|
|
61
|
+
totalTransactionVolume = 0;
|
|
62
|
+
averageClaimsPerUser = 0;
|
|
63
|
+
averageRedemptionsPerUser = 0;
|
|
64
|
+
averageTransactionsPerActiveUser = 0;
|
|
65
|
+
averageClaimsPerActiveUser = 0;
|
|
66
|
+
averageRedemptionsPerActiveUser = 0;
|
|
67
|
+
engagementRate = 0;
|
|
68
|
+
periodBreakdown;
|
|
69
|
+
metadata = { executionTimeMs: 0 };
|
|
70
|
+
}
|
|
71
|
+
exports.UserAnalyticsResponseDTO = UserAnalyticsResponseDTO;
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, swagger_1.ApiProperty)({
|
|
74
|
+
description: 'Total number of registered users (all-time, no date filter applied). Includes all non-deleted users regardless of activity.',
|
|
75
|
+
example: 10523
|
|
76
|
+
}),
|
|
77
|
+
__metadata("design:type", Number)
|
|
78
|
+
], UserAnalyticsResponseDTO.prototype, "totalUsers", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, swagger_1.ApiProperty)({
|
|
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.',
|
|
82
|
+
example: 3241
|
|
83
|
+
}),
|
|
84
|
+
__metadata("design:type", Number)
|
|
85
|
+
], UserAnalyticsResponseDTO.prototype, "activeUsers", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, swagger_1.ApiProperty)({
|
|
88
|
+
description: 'Number of new users created within the specified date range (filtered by user.createdAt). If no date range provided, equals totalUsers.',
|
|
89
|
+
example: 156
|
|
90
|
+
}),
|
|
91
|
+
__metadata("design:type", Number)
|
|
92
|
+
], UserAnalyticsResponseDTO.prototype, "newUsers", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, swagger_1.ApiProperty)({
|
|
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.',
|
|
96
|
+
example: 12.5
|
|
97
|
+
}),
|
|
98
|
+
__metadata("design:type", Number)
|
|
99
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerUser", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, swagger_1.ApiProperty)({
|
|
102
|
+
description: 'Average amount per transaction (total transaction volume ÷ transaction count). Only includes successful transactions (status=succeeded) in date range.',
|
|
103
|
+
example: 45.67
|
|
104
|
+
}),
|
|
105
|
+
__metadata("design:type", Number)
|
|
106
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionAmount", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
(0, swagger_1.ApiProperty)({
|
|
109
|
+
description: 'Total transaction volume - sum of all successful transaction amounts (status=succeeded) in date range. Excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types.',
|
|
110
|
+
example: 56789.12
|
|
111
|
+
}),
|
|
112
|
+
__metadata("design:type", Number)
|
|
113
|
+
], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, swagger_1.ApiProperty)({
|
|
116
|
+
description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
|
|
117
|
+
example: 3.2
|
|
118
|
+
}),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, swagger_1.ApiProperty)({
|
|
123
|
+
description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
|
|
124
|
+
example: 1.8
|
|
125
|
+
}),
|
|
126
|
+
__metadata("design:type", Number)
|
|
127
|
+
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
(0, swagger_1.ApiProperty)({
|
|
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.',
|
|
152
|
+
example: 30.79,
|
|
153
|
+
type: 'number'
|
|
154
|
+
}),
|
|
155
|
+
__metadata("design:type", Number)
|
|
156
|
+
], UserAnalyticsResponseDTO.prototype, "engagementRate", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
159
|
+
description: 'Breakdown by time period (if requested)',
|
|
160
|
+
type: 'array',
|
|
161
|
+
items: {
|
|
162
|
+
type: 'object',
|
|
163
|
+
properties: {
|
|
164
|
+
date: { type: 'string', example: '2024-01-01' },
|
|
165
|
+
activeUsers: { type: 'number', example: 245 },
|
|
166
|
+
newUsers: { type: 'number', example: 12 }
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}),
|
|
170
|
+
__metadata("design:type", Array)
|
|
171
|
+
], UserAnalyticsResponseDTO.prototype, "periodBreakdown", void 0);
|
|
172
|
+
__decorate([
|
|
173
|
+
(0, swagger_1.ApiProperty)({
|
|
174
|
+
description: 'Query execution metadata including timing and applied filters',
|
|
175
|
+
type: 'object',
|
|
176
|
+
properties: {
|
|
177
|
+
executionTimeMs: {
|
|
178
|
+
type: 'number',
|
|
179
|
+
example: 142,
|
|
180
|
+
description: 'SQL query execution time in milliseconds (for performance monitoring)'
|
|
181
|
+
},
|
|
182
|
+
dateRange: {
|
|
183
|
+
type: 'object',
|
|
184
|
+
properties: {
|
|
185
|
+
startDate: { type: 'string', format: 'date-time' },
|
|
186
|
+
endDate: { type: 'string', format: 'date-time' }
|
|
187
|
+
},
|
|
188
|
+
description: 'Applied date range filter (only present if filters were used)'
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}),
|
|
192
|
+
__metadata("design:type", Object)
|
|
193
|
+
], UserAnalyticsResponseDTO.prototype, "metadata", void 0);
|
|
194
|
+
//# sourceMappingURL=user-analytics.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,qBAAa,OAAO;IAGhB,EAAE,EAAG,MAAM,CAAM;IAIjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,eAAe,EAAE,MAAM,CAAM;IAW7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMhC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAQH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKxC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAOhD,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAKnD,QAAQ,EAAE,OAAO,CAAQ;IAMzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9C,OAAO,EAAE,eAAe,EAAE,CAAM;
|
|
1
|
+
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,qBAAa,OAAO;IAGhB,EAAE,EAAG,MAAM,CAAM;IAIjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,eAAe,EAAE,MAAM,CAAM;IAW7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMhC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAQH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKxC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAOhD,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAKnD,QAAQ,EAAE,OAAO,CAAQ;IAMzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9C,OAAO,EAAE,eAAe,EAAE,CAAM;IAMhC,SAAS,EAAE,IAAI,CAAc;IAO7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;CACjC;AAED,qBAAa,aAAa;IAEtB,EAAE,EAAG,MAAM,CAAM;IAKjB,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;CAC7C;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAK7C,aAAa,EAAE,uBAAuB,EAAE,CAAM;CACjD;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC"}
|
|
@@ -36,6 +36,8 @@ class UserDTO {
|
|
|
36
36
|
isActive = true;
|
|
37
37
|
currentSigningAccountId = null;
|
|
38
38
|
wallets = [];
|
|
39
|
+
createdAt = new Date();
|
|
40
|
+
updatedAt = null;
|
|
39
41
|
}
|
|
40
42
|
exports.UserDTO = UserDTO;
|
|
41
43
|
__decorate([
|
|
@@ -123,6 +125,21 @@ __decorate([
|
|
|
123
125
|
}),
|
|
124
126
|
__metadata("design:type", Array)
|
|
125
127
|
], UserDTO.prototype, "wallets", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
(0, swagger_1.ApiProperty)({
|
|
130
|
+
description: 'Timestamp when the user was created',
|
|
131
|
+
type: Date
|
|
132
|
+
}),
|
|
133
|
+
__metadata("design:type", Date)
|
|
134
|
+
], UserDTO.prototype, "createdAt", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
(0, swagger_1.ApiProperty)({
|
|
137
|
+
description: 'Timestamp when the user was last updated',
|
|
138
|
+
type: Date,
|
|
139
|
+
nullable: true
|
|
140
|
+
}),
|
|
141
|
+
__metadata("design:type", Object)
|
|
142
|
+
], UserDTO.prototype, "updatedAt", void 0);
|
|
126
143
|
class PublicUserDTO {
|
|
127
144
|
id = '';
|
|
128
145
|
publicProfile = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAkE;AAClE,6CAA+C;AAC/C,6EAAuE;AAGvE,MAAa,OAAO;IAGhB,EAAE,GAAY,EAAE,CAAC;IAEjB,eAAe;IAEf,KAAK,GAAkB,IAAI,CAAC;IAM5B,eAAe,GAAW,EAAE,CAAC;IAE7B;;;mCAG+B;IAM/B,SAAS,GAAkB,IAAI,CAAC;IAMhC,QAAQ,GAAkB,IAAI,CAAC;IAM/B,UAAU,GAAkB,IAAI,CAAC;IAEjC;;OAEG;IAQH,cAAc,GAAkB,IAAI,CAAC;IAQrC,kBAAkB,GAAkB,IAAI,CAAC;IAMzC,iBAAiB,GAAkB,IAAI,CAAC;IAKxC,UAAU,GAAiC,IAAI,CAAC;IAOhD,aAAa,GAAiC,IAAI,CAAC;IAKnD,QAAQ,GAAY,IAAI,CAAC;IAMzB,uBAAuB,GAAkB,IAAI,CAAC;IAO9C,OAAO,GAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAkE;AAClE,6CAA+C;AAC/C,6EAAuE;AAGvE,MAAa,OAAO;IAGhB,EAAE,GAAY,EAAE,CAAC;IAEjB,eAAe;IAEf,KAAK,GAAkB,IAAI,CAAC;IAM5B,eAAe,GAAW,EAAE,CAAC;IAE7B;;;mCAG+B;IAM/B,SAAS,GAAkB,IAAI,CAAC;IAMhC,QAAQ,GAAkB,IAAI,CAAC;IAM/B,UAAU,GAAkB,IAAI,CAAC;IAEjC;;OAEG;IAQH,cAAc,GAAkB,IAAI,CAAC;IAQrC,kBAAkB,GAAkB,IAAI,CAAC;IAMzC,iBAAiB,GAAkB,IAAI,CAAC;IAKxC,UAAU,GAAiC,IAAI,CAAC;IAOhD,aAAa,GAAiC,IAAI,CAAC;IAKnD,QAAQ,GAAY,IAAI,CAAC;IAMzB,uBAAuB,GAAkB,IAAI,CAAC;IAO9C,OAAO,GAAsB,EAAE,CAAC;IAMhC,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAO7B,SAAS,GAAgB,IAAI,CAAC;CACjC;AA1GD,0BA0GC;AAvGG;IADC,IAAA,qBAAW,GAAE;;mCACG;AAIjB;IADC,IAAA,6BAAmB,GAAE;;sCACM;AAM5B;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,8JAA8J;QAC3K,OAAO,EAAE,4BAA4B;KACxC,CAAC;;gDAC2B;AAW7B;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,IAAI;KACjB,CAAC;;0CAC8B;AAMhC;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,IAAI;KACjB,CAAC;;yCAC6B;AAM/B;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,IAAI;KACjB,CAAC;;2CAC+B;AAYjC;IAPC,IAAA,qBAAW,EACR;QACI,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;KACnB,CACJ;;+CACoC;AAQrC;IANC,IAAA,qBAAW,EACR;QACI,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,IAAI;KACjB,CACJ;;mDACwC;AAMzC;IAJC,IAAA,qBAAW,EACR,EAAC,WAAW,EAAE,qBAAqB;QACnC,QAAQ,EAAE,IAAI,EAAC,CAClB;;kDACuC;AAKxC;IAHC,IAAA,qBAAW,EACR,EAAC,WAAW,EAAE,aAAa,EAAC,CAC/B;;2CAC+C;AAOhD;IALC,IAAA,qBAAW,EACR,EAAC,WAAW,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,IAAI;KACjB,CACJ;;8CACkD;AAKnD;IAHC,IAAA,qBAAW,EACR,EAAC,WAAW,EAAE,WAAW,EAAC,CAC7B;;yCACwB;AAMzB;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,kEAAkE;QAC/E,QAAQ,EAAE,KAAK;KAClB,CAAC;;wDAC4C;AAO9C;IALC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,0EAA0E;QACvF,IAAI,EAAE,GAAG,EAAE,CAAC,4BAAe;QAC3B,OAAO,EAAE,IAAI;KAChB,CAAC;;wCAC8B;AAMhC;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,IAAI;KACb,CAAC;8BACS,IAAI;0CAAc;AAO7B;IALC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACjB,CAAC;;0CAC4B;AAGlC,MAAa,aAAa;IAEtB,EAAE,GAAY,EAAE,CAAC;IAKjB,aAAa,GAA0B,EAAE,CAAC;CAC7C;AARD,sCAQC;AANG;IADC,IAAA,qBAAW,GAAE;;yCACG;AAKjB;IAHC,IAAA,qBAAW,EACR,EAAC,WAAW,EAAE,qBAAqB,EAAC,CACvC;;oDACyC;AAG9C,MAAa,oBAAqB,SAAQ,OAAO;IAK7C,aAAa,GAA8B,EAAE,CAAC;CACjD;AAND,oDAMC;AADG;IAJC,IAAA,qBAAW,EAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAC,oDAAuB;QACnC,OAAO,EAAE,IAAI;KAChB,CAAC;;2DAC4C"}
|
|
@@ -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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"}
|
|
@@ -6,6 +6,7 @@ export * from './tenant';
|
|
|
6
6
|
export * from './user.dto';
|
|
7
7
|
export * from './user.request.dto';
|
|
8
8
|
export * from './user-status-type.dto';
|
|
9
|
+
export * from './user-analytics.dto';
|
|
9
10
|
export * from './userUploadData.dto';
|
|
10
11
|
export * from './error-response.dto';
|
|
11
12
|
export * from './account-token-balances.dto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAKA,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAG1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAI9C,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAIlC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAKA,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAGhD,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAG1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAI9C,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAIlC,cAAc,SAAS,CAAC"}
|
|
@@ -12,6 +12,7 @@ export * from './tenant/index.js';
|
|
|
12
12
|
export * from './user.dto.js';
|
|
13
13
|
export * from './user.request.dto.js';
|
|
14
14
|
export * from './user-status-type.dto.js';
|
|
15
|
+
export * from './user-analytics.dto.js';
|
|
15
16
|
export * from './userUploadData.dto.js';
|
|
16
17
|
// Error Response DTOs
|
|
17
18
|
export * from './error-response.dto.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qFAAqF;AAGrF,iBAAiB;AACjB,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAEhD,YAAY;AACZ,cAAc,QAAQ,CAAC;AAEvB,gBAAgB;AAChB,cAAc,YAAY,CAAA;AAE1B,YAAY;AACZ,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAErC,sBAAsB;AACtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,eAAe,CAAC;AAE9B,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,kBAAkB;AAClB,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAEzB,gBAAgB;AAChB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAG9C,uBAAuB;AACvB,cAAc,mBAAmB,CAAA;AAEjC,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AAEvC,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAGlC,aAAa;AACb,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qFAAqF;AAGrF,iBAAiB;AACjB,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAEhD,YAAY;AACZ,cAAc,QAAQ,CAAC;AAEvB,gBAAgB;AAChB,cAAc,YAAY,CAAA;AAE1B,YAAY;AACZ,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAErC,sBAAsB;AACtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,eAAe,CAAC;AAE9B,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,kBAAkB;AAClB,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAEzB,gBAAgB;AAChB,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAG9C,uBAAuB;AACvB,cAAc,mBAAmB,CAAA;AAEjC,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AAEvC,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAGlC,aAAa;AACb,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* USER ANALYTICS REQUEST DTO
|
|
3
|
+
*
|
|
4
|
+
* Filters for user analytics queries.
|
|
5
|
+
* Supports date range filtering and business-specific analytics.
|
|
6
|
+
*/
|
|
7
|
+
export declare class UserAnalyticsRequestDTO {
|
|
8
|
+
startDate?: Date;
|
|
9
|
+
endDate?: Date;
|
|
10
|
+
businessId?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* USER ANALYTICS RESPONSE DTO
|
|
14
|
+
*
|
|
15
|
+
* Aggregated user statistics and metrics.
|
|
16
|
+
* Uses ONLY database-stored data (user, transaction, campaign_user_claim tables).
|
|
17
|
+
*
|
|
18
|
+
* NOTE: Does NOT include blockchain balance data (fetched on-demand via Web3, not stored in DB).
|
|
19
|
+
*/
|
|
20
|
+
export declare class UserAnalyticsResponseDTO {
|
|
21
|
+
totalUsers: number;
|
|
22
|
+
activeUsers: number;
|
|
23
|
+
newUsers: number;
|
|
24
|
+
averageTransactionsPerUser: number;
|
|
25
|
+
averageTransactionAmount: number;
|
|
26
|
+
totalTransactionVolume: number;
|
|
27
|
+
averageClaimsPerUser: number;
|
|
28
|
+
averageRedemptionsPerUser: number;
|
|
29
|
+
averageTransactionsPerActiveUser: number;
|
|
30
|
+
averageClaimsPerActiveUser: number;
|
|
31
|
+
averageRedemptionsPerActiveUser: number;
|
|
32
|
+
engagementRate: number;
|
|
33
|
+
periodBreakdown?: {
|
|
34
|
+
date: string;
|
|
35
|
+
activeUsers: number;
|
|
36
|
+
newUsers: number;
|
|
37
|
+
}[];
|
|
38
|
+
metadata: {
|
|
39
|
+
executionTimeMs: number;
|
|
40
|
+
dateRange?: {
|
|
41
|
+
startDate: Date;
|
|
42
|
+
endDate: Date;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# 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/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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
8
|
+
/**
|
|
9
|
+
* USER ANALYTICS REQUEST DTO
|
|
10
|
+
*
|
|
11
|
+
* Filters for user analytics queries.
|
|
12
|
+
* Supports date range filtering and business-specific analytics.
|
|
13
|
+
*/
|
|
14
|
+
export class UserAnalyticsRequestDTO {
|
|
15
|
+
startDate;
|
|
16
|
+
endDate;
|
|
17
|
+
businessId;
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
ApiPropertyOptional({
|
|
21
|
+
description: 'Start date for filtering (ISO 8601)',
|
|
22
|
+
example: '2024-01-01T00:00:00Z'
|
|
23
|
+
})
|
|
24
|
+
], UserAnalyticsRequestDTO.prototype, "startDate", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
ApiPropertyOptional({
|
|
27
|
+
description: 'End date for filtering (ISO 8601)',
|
|
28
|
+
example: '2024-12-31T23:59:59Z'
|
|
29
|
+
})
|
|
30
|
+
], UserAnalyticsRequestDTO.prototype, "endDate", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
ApiPropertyOptional({
|
|
33
|
+
description: 'Filter by specific business ID',
|
|
34
|
+
example: 'biz-uuid-123'
|
|
35
|
+
})
|
|
36
|
+
], UserAnalyticsRequestDTO.prototype, "businessId", void 0);
|
|
37
|
+
/**
|
|
38
|
+
* USER ANALYTICS RESPONSE DTO
|
|
39
|
+
*
|
|
40
|
+
* Aggregated user statistics and metrics.
|
|
41
|
+
* Uses ONLY database-stored data (user, transaction, campaign_user_claim tables).
|
|
42
|
+
*
|
|
43
|
+
* NOTE: Does NOT include blockchain balance data (fetched on-demand via Web3, not stored in DB).
|
|
44
|
+
*/
|
|
45
|
+
export class UserAnalyticsResponseDTO {
|
|
46
|
+
totalUsers = 0;
|
|
47
|
+
activeUsers = 0;
|
|
48
|
+
newUsers = 0;
|
|
49
|
+
averageTransactionsPerUser = 0;
|
|
50
|
+
averageTransactionAmount = 0;
|
|
51
|
+
totalTransactionVolume = 0;
|
|
52
|
+
averageClaimsPerUser = 0;
|
|
53
|
+
averageRedemptionsPerUser = 0;
|
|
54
|
+
averageTransactionsPerActiveUser = 0;
|
|
55
|
+
averageClaimsPerActiveUser = 0;
|
|
56
|
+
averageRedemptionsPerActiveUser = 0;
|
|
57
|
+
engagementRate = 0;
|
|
58
|
+
periodBreakdown;
|
|
59
|
+
metadata = { executionTimeMs: 0 };
|
|
60
|
+
}
|
|
61
|
+
__decorate([
|
|
62
|
+
ApiProperty({
|
|
63
|
+
description: 'Total number of registered users (all-time, no date filter applied). Includes all non-deleted users regardless of activity.',
|
|
64
|
+
example: 10523
|
|
65
|
+
})
|
|
66
|
+
], UserAnalyticsResponseDTO.prototype, "totalUsers", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
ApiProperty({
|
|
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.',
|
|
70
|
+
example: 3241
|
|
71
|
+
})
|
|
72
|
+
], UserAnalyticsResponseDTO.prototype, "activeUsers", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
ApiProperty({
|
|
75
|
+
description: 'Number of new users created within the specified date range (filtered by user.createdAt). If no date range provided, equals totalUsers.',
|
|
76
|
+
example: 156
|
|
77
|
+
})
|
|
78
|
+
], UserAnalyticsResponseDTO.prototype, "newUsers", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
ApiProperty({
|
|
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.',
|
|
82
|
+
example: 12.5
|
|
83
|
+
})
|
|
84
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionsPerUser", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
ApiProperty({
|
|
87
|
+
description: 'Average amount per transaction (total transaction volume ÷ transaction count). Only includes successful transactions (status=succeeded) in date range.',
|
|
88
|
+
example: 45.67
|
|
89
|
+
})
|
|
90
|
+
], UserAnalyticsResponseDTO.prototype, "averageTransactionAmount", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
ApiProperty({
|
|
93
|
+
description: 'Total transaction volume - sum of all successful transaction amounts (status=succeeded) in date range. Excludes REDEMPTION_SPEND and REDEMPTION_RECEIVE types.',
|
|
94
|
+
example: 56789.12
|
|
95
|
+
})
|
|
96
|
+
], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
ApiProperty({
|
|
99
|
+
description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
|
|
100
|
+
example: 3.2
|
|
101
|
+
})
|
|
102
|
+
], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
ApiProperty({
|
|
105
|
+
description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
|
|
106
|
+
example: 1.8
|
|
107
|
+
})
|
|
108
|
+
], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
ApiProperty({
|
|
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.',
|
|
130
|
+
example: 30.79,
|
|
131
|
+
type: 'number'
|
|
132
|
+
})
|
|
133
|
+
], UserAnalyticsResponseDTO.prototype, "engagementRate", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
ApiPropertyOptional({
|
|
136
|
+
description: 'Breakdown by time period (if requested)',
|
|
137
|
+
type: 'array',
|
|
138
|
+
items: {
|
|
139
|
+
type: 'object',
|
|
140
|
+
properties: {
|
|
141
|
+
date: { type: 'string', example: '2024-01-01' },
|
|
142
|
+
activeUsers: { type: 'number', example: 245 },
|
|
143
|
+
newUsers: { type: 'number', example: 12 }
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
], UserAnalyticsResponseDTO.prototype, "periodBreakdown", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
ApiProperty({
|
|
150
|
+
description: 'Query execution metadata including timing and applied filters',
|
|
151
|
+
type: 'object',
|
|
152
|
+
properties: {
|
|
153
|
+
executionTimeMs: {
|
|
154
|
+
type: 'number',
|
|
155
|
+
example: 142,
|
|
156
|
+
description: 'SQL query execution time in milliseconds (for performance monitoring)'
|
|
157
|
+
},
|
|
158
|
+
dateRange: {
|
|
159
|
+
type: 'object',
|
|
160
|
+
properties: {
|
|
161
|
+
startDate: { type: 'string', format: 'date-time' },
|
|
162
|
+
endDate: { type: 'string', format: 'date-time' }
|
|
163
|
+
},
|
|
164
|
+
description: 'Applied date range filter (only present if filters were used)'
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
})
|
|
168
|
+
], UserAnalyticsResponseDTO.prototype, "metadata", void 0);
|
|
169
|
+
//# sourceMappingURL=user-analytics.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-analytics.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,qBAAa,OAAO;IAGhB,EAAE,EAAG,MAAM,CAAM;IAIjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,eAAe,EAAE,MAAM,CAAM;IAW7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMhC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAQH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKxC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAOhD,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAKnD,QAAQ,EAAE,OAAO,CAAQ;IAMzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9C,OAAO,EAAE,eAAe,EAAE,CAAM;
|
|
1
|
+
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,qBAAa,OAAO;IAGhB,EAAE,EAAG,MAAM,CAAM;IAIjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,eAAe,EAAE,MAAM,CAAM;IAW7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMhC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAQH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKxC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAOhD,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAKnD,QAAQ,EAAE,OAAO,CAAQ;IAMzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9C,OAAO,EAAE,eAAe,EAAE,CAAM;IAMhC,SAAS,EAAE,IAAI,CAAc;IAO7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;CACjC;AAED,qBAAa,aAAa;IAEtB,EAAE,EAAG,MAAM,CAAM;IAKjB,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;CAC7C;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAK7C,aAAa,EAAE,uBAAuB,EAAE,CAAM;CACjD;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC"}
|
|
@@ -30,6 +30,8 @@ export class UserDTO {
|
|
|
30
30
|
isActive = true;
|
|
31
31
|
currentSigningAccountId = null;
|
|
32
32
|
wallets = [];
|
|
33
|
+
createdAt = new Date();
|
|
34
|
+
updatedAt = null;
|
|
33
35
|
}
|
|
34
36
|
__decorate([
|
|
35
37
|
ApiProperty()
|
|
@@ -102,6 +104,19 @@ __decorate([
|
|
|
102
104
|
isArray: true
|
|
103
105
|
})
|
|
104
106
|
], UserDTO.prototype, "wallets", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
ApiProperty({
|
|
109
|
+
description: 'Timestamp when the user was created',
|
|
110
|
+
type: Date
|
|
111
|
+
})
|
|
112
|
+
], UserDTO.prototype, "createdAt", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
ApiProperty({
|
|
115
|
+
description: 'Timestamp when the user was last updated',
|
|
116
|
+
type: Date,
|
|
117
|
+
nullable: true
|
|
118
|
+
})
|
|
119
|
+
], UserDTO.prototype, "updatedAt", void 0);
|
|
105
120
|
export class PublicUserDTO {
|
|
106
121
|
id = '';
|
|
107
122
|
publicProfile = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,MAAM,OAAO,OAAO;IAGhB,EAAE,GAAY,EAAE,CAAC;IAEjB,eAAe;IAEf,KAAK,GAAkB,IAAI,CAAC;IAM5B,eAAe,GAAW,EAAE,CAAC;IAE7B;;;mCAG+B;IAM/B,SAAS,GAAkB,IAAI,CAAC;IAMhC,QAAQ,GAAkB,IAAI,CAAC;IAM/B,UAAU,GAAkB,IAAI,CAAC;IAEjC;;OAEG;IAQH,cAAc,GAAkB,IAAI,CAAC;IAQrC,kBAAkB,GAAkB,IAAI,CAAC;IAMzC,iBAAiB,GAAkB,IAAI,CAAC;IAKxC,UAAU,GAAiC,IAAI,CAAC;IAOhD,aAAa,GAAiC,IAAI,CAAC;IAKnD,QAAQ,GAAY,IAAI,CAAC;IAMzB,uBAAuB,GAAkB,IAAI,CAAC;IAO9C,OAAO,GAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user.dto.ts"],"names":[],"mappings":"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"}
|