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