@explorins/pers-shared 2.1.46 → 2.1.50
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/pagination/pagination.request.dto.d.ts +2 -2
- package/dist/cjs/shared-lib/dto/pagination/pagination.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/pagination/pagination.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts +7 -9
- package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.js +21 -13
- package/dist/cjs/shared-lib/dto/transaction/transaction-analytics.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/transaction/transaction-pagination.request.dto.d.ts +32 -7
- package/dist/cjs/shared-lib/dto/transaction/transaction-pagination.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/transaction/transaction-pagination.request.dto.js +47 -17
- package/dist/cjs/shared-lib/dto/transaction/transaction-pagination.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/base-pagination.interface.d.ts +7 -7
- package/dist/cjs/shared-lib/interfaces/base-pagination.interface.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/analytics.type.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/analytics.type.js +0 -2
- package/dist/cjs/shared-lib/types/analytics.type.js.map +1 -1
- package/dist/esm/shared-lib/dto/pagination/pagination.request.dto.d.ts +2 -2
- package/dist/esm/shared-lib/dto/pagination/pagination.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/pagination/pagination.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts +7 -9
- package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.js +20 -13
- package/dist/esm/shared-lib/dto/transaction/transaction-analytics.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction-pagination.request.dto.d.ts +32 -7
- package/dist/esm/shared-lib/dto/transaction/transaction-pagination.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction-pagination.request.dto.js +44 -17
- package/dist/esm/shared-lib/dto/transaction/transaction-pagination.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/base-pagination.interface.d.ts +7 -7
- package/dist/esm/shared-lib/interfaces/base-pagination.interface.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/analytics.type.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/analytics.type.js +0 -2
- package/dist/esm/shared-lib/types/analytics.type.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,8 +7,8 @@ import { BaseFilters, BasePaginationQuery } from '../../interfaces/base-paginati
|
|
|
7
7
|
export declare abstract class BasePaginationRequestDTO implements BasePaginationQuery {
|
|
8
8
|
readonly page?: number;
|
|
9
9
|
readonly limit?: number;
|
|
10
|
-
readonly sortOrder
|
|
11
|
-
abstract readonly sortBy
|
|
10
|
+
readonly sortOrder?: SortOrder;
|
|
11
|
+
abstract readonly sortBy?: string;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* ✅ GENERIC: Base filters DTO
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAE9F;;;GAGG;AACH,8BAAsB,wBAAyB,YAAW,mBAAmB;IAW3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAcvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAUxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAkB;
|
|
1
|
+
{"version":3,"file":"pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAE9F;;;GAGG;AACH,8BAAsB,wBAAyB,YAAW,mBAAmB;IAW3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAcvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAUxB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAkB;IAGhD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAOzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAQzB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,yDAAyC;AACzC,qDAAoF;AACpF,gEAAuD;AAGvD;;;GAGG;AACH,MAAsB,wBAAwB;IAWnC,IAAI,CAAU;IAcd,KAAK,CAAU;IAUf,SAAS,
|
|
1
|
+
{"version":3,"file":"pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,yDAAyC;AACzC,qDAAoF;AACpF,gEAAuD;AAGvD;;;GAGG;AACH,MAAsB,wBAAwB;IAWnC,IAAI,CAAU;IAcd,KAAK,CAAU;IAUf,SAAS,GAAe,2BAAS,CAAC,IAAI,CAAC;CAIjD;AAvCD,4DAuCC;AA5BU;IAVR,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;sDACgB;AAcd;IAZR,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,IAAI,CAAC;;uDACc;AAUf;IARR,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,CAAC,2BAAS,CAAC;QACjB,OAAO,EAAE,2BAAS,CAAC,IAAI;QACvB,OAAO,EAAE,2BAAS,CAAC,IAAI;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,CAAC;;2DAC4B;AAMlD;;GAEG;AACH,MAAsB,cAAc;IAOzB,QAAQ,CAAQ;IAQhB,MAAM,CAAQ;CACxB;AAhBD,wCAgBC;AATU;IANR,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,wDAAwD;QACrE,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACK,IAAI;gDAAC;AAQhB;IANR,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;8BACG,IAAI;8CAAC"}
|
|
@@ -2,12 +2,15 @@ import { TransactionDTO } from './transaction.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
|
+
declare const TransactionAnalyticsFiltersDTO_base: import("@nestjs/common").Type<Partial<Omit<TransactionDTO, "createdAt" | "updatedAt">>>;
|
|
6
|
+
export declare class TransactionAnalyticsFiltersDTO extends TransactionAnalyticsFiltersDTO_base {
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
|
-
*
|
|
9
|
+
* ANALYTICS: Dynamic transaction analytics request
|
|
7
10
|
* Provides flexible filtering, grouping, and aggregation for frontend modules
|
|
8
11
|
*/
|
|
9
12
|
export declare class TransactionAnalyticsRequestDTO {
|
|
10
|
-
filters?:
|
|
13
|
+
filters?: TransactionAnalyticsFiltersDTO;
|
|
11
14
|
groupBy?: TransactionAnalyticsGroupByType[];
|
|
12
15
|
groupByExpressions?: GroupByExpressionDTO[];
|
|
13
16
|
metrics: AnalyticsMetricType[];
|
|
@@ -18,16 +21,11 @@ export declare class TransactionAnalyticsRequestDTO {
|
|
|
18
21
|
endDate?: Date;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
|
-
*
|
|
22
|
-
* Excludes only date fields (handled separately) and nullable fields that need special handling
|
|
23
|
-
*/
|
|
24
|
-
type TransactionAnalyticsFilters = Partial<Omit<TransactionDTO, 'createdAt' | 'updatedAt'>>;
|
|
25
|
-
/**
|
|
26
|
-
* llow grouping by any meaningful TransactionDTO field + computed time fields
|
|
24
|
+
* Allow grouping by any meaningful TransactionDTO field + computed time fields
|
|
27
25
|
*/
|
|
28
26
|
export type TransactionAnalyticsGroupByType = AnalyticsGroupByType | keyof Omit<TransactionDTO, 'createdAt' | 'updatedAt' | 'id' | 'transactionHash'>;
|
|
29
27
|
/**
|
|
30
|
-
*
|
|
28
|
+
* RESPONSE: Analytics result structure
|
|
31
29
|
*/
|
|
32
30
|
export declare class TransactionAnalyticsResponseDTO {
|
|
33
31
|
results: TransactionAnalyticsResultItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,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,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,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,sCAAsC,CAAC;;AAI5E,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,EAAE,mBAAmB,GAAG,WAAW,CAAW;IASpD,SAAS,EAAE,SAAS,CAAkB;IActC,KAAK,EAAE,MAAM,CAAM;IASnB,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;IAMxB,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;KACvB,CAEC;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"}
|
|
@@ -9,32 +9,38 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TransactionAnalyticsResponseDTO = exports.TransactionAnalyticsRequestDTO = void 0;
|
|
12
|
+
exports.TransactionAnalyticsResponseDTO = exports.TransactionAnalyticsRequestDTO = exports.TransactionAnalyticsFiltersDTO = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const swagger_1 = require("@nestjs/swagger");
|
|
16
|
+
const transaction_dto_1 = require("./transaction.dto");
|
|
16
17
|
const enum_1 = require("../../enum");
|
|
17
18
|
const analytics_type_1 = require("../../types/analytics.type");
|
|
18
19
|
const group_by_expression_dto_1 = require("../analytics/group-by-expression.dto");
|
|
20
|
+
// Define the Filters DTO class first so it can be used in the Request DTO
|
|
21
|
+
// Uses OmitType and PartialType to create a type-safe definition that Swagger can understand
|
|
22
|
+
class TransactionAnalyticsFiltersDTO extends (0, swagger_1.PartialType)((0, swagger_1.OmitType)(transaction_dto_1.TransactionDTO, ['createdAt', 'updatedAt'])) {
|
|
23
|
+
}
|
|
24
|
+
exports.TransactionAnalyticsFiltersDTO = TransactionAnalyticsFiltersDTO;
|
|
19
25
|
/**
|
|
20
|
-
*
|
|
26
|
+
* ANALYTICS: Dynamic transaction analytics request
|
|
21
27
|
* Provides flexible filtering, grouping, and aggregation for frontend modules
|
|
22
28
|
*/
|
|
23
29
|
class TransactionAnalyticsRequestDTO {
|
|
24
|
-
//
|
|
30
|
+
// FILTERING OPTIONS (Dynamic keyof TransactionDTO)
|
|
25
31
|
filters;
|
|
26
|
-
//
|
|
32
|
+
// SIMPLE GROUPING OPTIONS (Fully Dynamic)
|
|
27
33
|
groupBy;
|
|
28
|
-
//
|
|
34
|
+
// COMPLEX GROUPING OPTIONS (CASE WHEN Support)
|
|
29
35
|
groupByExpressions;
|
|
30
|
-
//
|
|
36
|
+
// METRICS OPTIONS
|
|
31
37
|
metrics = ['count'];
|
|
32
|
-
//
|
|
38
|
+
// ORDERING OPTIONS
|
|
33
39
|
sortBy = 'count';
|
|
34
40
|
sortOrder = enum_1.SortOrder.DESC;
|
|
35
|
-
//
|
|
41
|
+
// LIMIT OPTIONS
|
|
36
42
|
limit = 10;
|
|
37
|
-
//
|
|
43
|
+
// DATE RANGE OPTIONS
|
|
38
44
|
startDate;
|
|
39
45
|
endDate;
|
|
40
46
|
}
|
|
@@ -42,7 +48,7 @@ exports.TransactionAnalyticsRequestDTO = TransactionAnalyticsRequestDTO;
|
|
|
42
48
|
__decorate([
|
|
43
49
|
(0, swagger_1.ApiPropertyOptional)({
|
|
44
50
|
description: 'Dynamic filters based on TransactionDTO fields - all transaction fields available',
|
|
45
|
-
type:
|
|
51
|
+
type: TransactionAnalyticsFiltersDTO,
|
|
46
52
|
example: {
|
|
47
53
|
status: 'SUCCEEDED',
|
|
48
54
|
tokenType: 'STAMP',
|
|
@@ -53,7 +59,9 @@ __decorate([
|
|
|
53
59
|
}),
|
|
54
60
|
(0, class_validator_1.IsOptional)(),
|
|
55
61
|
(0, class_validator_1.IsObject)(),
|
|
56
|
-
|
|
62
|
+
(0, class_validator_1.ValidateNested)(),
|
|
63
|
+
(0, class_transformer_1.Type)(() => TransactionAnalyticsFiltersDTO),
|
|
64
|
+
__metadata("design:type", TransactionAnalyticsFiltersDTO)
|
|
57
65
|
], TransactionAnalyticsRequestDTO.prototype, "filters", void 0);
|
|
58
66
|
__decorate([
|
|
59
67
|
(0, swagger_1.ApiPropertyOptional)({
|
|
@@ -107,7 +115,7 @@ __decorate([
|
|
|
107
115
|
__decorate([
|
|
108
116
|
(0, swagger_1.ApiPropertyOptional)({
|
|
109
117
|
description: 'Order direction',
|
|
110
|
-
enum:
|
|
118
|
+
enum: enum_1.SortOrder,
|
|
111
119
|
example: enum_1.SortOrder.DESC
|
|
112
120
|
}),
|
|
113
121
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -147,7 +155,7 @@ __decorate([
|
|
|
147
155
|
__metadata("design:type", Date)
|
|
148
156
|
], TransactionAnalyticsRequestDTO.prototype, "endDate", void 0);
|
|
149
157
|
/**
|
|
150
|
-
*
|
|
158
|
+
* RESPONSE: Analytics result structure
|
|
151
159
|
*/
|
|
152
160
|
class TransactionAnalyticsResponseDTO {
|
|
153
161
|
results = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0I;AAC1I,yDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,48 @@
|
|
|
1
1
|
import { type NativeTokenType } from '../../types';
|
|
2
2
|
import { TransactionStatus, Web3TransactionType, TransactionRole } from '../../enum';
|
|
3
3
|
import { BaseFiltersDTO, BasePaginationRequestDTO } from '../pagination/pagination.request.dto';
|
|
4
|
+
import { SortOrder } from '../../enum/sort-order.enum';
|
|
4
5
|
declare const TRANSACTION_SORT_FIELDS: readonly ["createdAt", "amount", "type", "tokenType", "status", "senderAddress", "recipientAddress"];
|
|
5
6
|
export type TransactionSortField = typeof TRANSACTION_SORT_FIELDS[number];
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
+
* DOMAIN-SPECIFIC: Transaction Pagination Params Interface (Frontend/Client Use)
|
|
9
|
+
*/
|
|
10
|
+
export interface TransactionPaginationParams {
|
|
11
|
+
page: number;
|
|
12
|
+
limit: number;
|
|
13
|
+
sortBy?: string;
|
|
14
|
+
sortOrder?: SortOrder;
|
|
15
|
+
filters?: {
|
|
16
|
+
search?: string;
|
|
17
|
+
participantId?: string;
|
|
18
|
+
participantAddress?: string;
|
|
19
|
+
tokenAddress?: string;
|
|
20
|
+
tokenType?: NativeTokenType | NativeTokenType[];
|
|
21
|
+
status?: TransactionStatus | TransactionStatus[];
|
|
22
|
+
role?: TransactionRole | TransactionRole[];
|
|
23
|
+
type?: Web3TransactionType | Web3TransactionType[];
|
|
24
|
+
dateFrom?: string;
|
|
25
|
+
dateTo?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* DOMAIN-SPECIFIC: Transaction filters
|
|
8
30
|
*/
|
|
9
31
|
export declare class TransactionFiltersDTO extends BaseFiltersDTO {
|
|
32
|
+
search?: string;
|
|
10
33
|
participantId?: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
34
|
+
participantAddress?: string;
|
|
35
|
+
tokenAddress?: string;
|
|
36
|
+
role?: TransactionRole | TransactionRole[];
|
|
37
|
+
status?: TransactionStatus | TransactionStatus[];
|
|
38
|
+
type?: Web3TransactionType | Web3TransactionType[];
|
|
39
|
+
tokenType?: NativeTokenType | NativeTokenType[];
|
|
15
40
|
}
|
|
16
41
|
/**
|
|
17
|
-
*
|
|
42
|
+
* DOMAIN-SPECIFIC: Complete transaction pagination request
|
|
18
43
|
*/
|
|
19
44
|
export declare class TransactionPaginationRequestDTO extends BasePaginationRequestDTO {
|
|
20
|
-
readonly sortBy
|
|
45
|
+
readonly sortBy?: TransactionSortField;
|
|
21
46
|
filters?: TransactionFiltersDTO;
|
|
22
47
|
}
|
|
23
48
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,QAAA,MAAM,uBAAuB,sGAQnB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAG5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;QAGhD,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;QAGnD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IAOvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAQhB,aAAa,CAAC,EAAE,MAAM,CAAC;IAQvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAQ5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAStB,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAQ3C,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IASjD,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IASnD,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,wBAAwB;IAa3E,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAe;IAOrD,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC"}
|
|
@@ -26,16 +26,28 @@ const TRANSACTION_SORT_FIELDS = [
|
|
|
26
26
|
'recipientAddress'
|
|
27
27
|
];
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* DOMAIN-SPECIFIC: Transaction filters
|
|
30
30
|
*/
|
|
31
31
|
class TransactionFiltersDTO extends pagination_request_dto_1.BaseFiltersDTO {
|
|
32
|
+
search;
|
|
32
33
|
participantId;
|
|
34
|
+
participantAddress;
|
|
35
|
+
tokenAddress;
|
|
33
36
|
role;
|
|
34
37
|
status;
|
|
35
38
|
type;
|
|
36
39
|
tokenType;
|
|
37
40
|
}
|
|
38
41
|
exports.TransactionFiltersDTO = TransactionFiltersDTO;
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
44
|
+
description: 'Wildcard search for ID, address or transaction hash',
|
|
45
|
+
example: '0x123...'
|
|
46
|
+
}),
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
48
|
+
(0, class_validator_1.IsString)(),
|
|
49
|
+
__metadata("design:type", String)
|
|
50
|
+
], TransactionFiltersDTO.prototype, "search", void 0);
|
|
39
51
|
__decorate([
|
|
40
52
|
(0, swagger_1.ApiPropertyOptional)({
|
|
41
53
|
description: 'Filter by participant ID (searches in both senderId and recipientId)',
|
|
@@ -47,45 +59,63 @@ __decorate([
|
|
|
47
59
|
], TransactionFiltersDTO.prototype, "participantId", void 0);
|
|
48
60
|
__decorate([
|
|
49
61
|
(0, swagger_1.ApiPropertyOptional)({
|
|
50
|
-
description: 'Filter by
|
|
51
|
-
|
|
52
|
-
example: 'SENDER'
|
|
62
|
+
description: 'Filter by participant wallet address',
|
|
63
|
+
example: '0x123...'
|
|
53
64
|
}),
|
|
54
65
|
(0, class_validator_1.IsOptional)(),
|
|
55
66
|
(0, class_validator_1.IsString)(),
|
|
56
67
|
__metadata("design:type", String)
|
|
57
|
-
], TransactionFiltersDTO.prototype, "
|
|
68
|
+
], TransactionFiltersDTO.prototype, "participantAddress", void 0);
|
|
58
69
|
__decorate([
|
|
59
70
|
(0, swagger_1.ApiPropertyOptional)({
|
|
60
|
-
description: 'Filter by
|
|
61
|
-
example: '
|
|
71
|
+
description: 'Filter by token contract address',
|
|
72
|
+
example: '0xabc...'
|
|
62
73
|
}),
|
|
63
74
|
(0, class_validator_1.IsOptional)(),
|
|
64
75
|
(0, class_validator_1.IsString)(),
|
|
65
76
|
__metadata("design:type", String)
|
|
77
|
+
], TransactionFiltersDTO.prototype, "tokenAddress", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
80
|
+
description: 'Filter by transaction role relative to participant',
|
|
81
|
+
enum: enum_1.TransactionRole,
|
|
82
|
+
example: 'SENDER',
|
|
83
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
84
|
+
}),
|
|
85
|
+
(0, class_validator_1.IsOptional)(),
|
|
86
|
+
__metadata("design:type", Object)
|
|
87
|
+
], TransactionFiltersDTO.prototype, "role", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
90
|
+
description: 'Filter by transaction status',
|
|
91
|
+
example: 'SUCCEEDED',
|
|
92
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
93
|
+
}),
|
|
94
|
+
(0, class_validator_1.IsOptional)(),
|
|
95
|
+
__metadata("design:type", Object)
|
|
66
96
|
], TransactionFiltersDTO.prototype, "status", void 0);
|
|
67
97
|
__decorate([
|
|
68
98
|
(0, swagger_1.ApiPropertyOptional)({
|
|
69
99
|
description: 'Filter by transaction type',
|
|
70
|
-
enum:
|
|
71
|
-
example: 'MINT'
|
|
100
|
+
enum: enum_1.Web3TransactionType,
|
|
101
|
+
example: 'MINT',
|
|
102
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
72
103
|
}),
|
|
73
104
|
(0, class_validator_1.IsOptional)(),
|
|
74
|
-
(
|
|
75
|
-
__metadata("design:type", String)
|
|
105
|
+
__metadata("design:type", Object)
|
|
76
106
|
], TransactionFiltersDTO.prototype, "type", void 0);
|
|
77
107
|
__decorate([
|
|
78
108
|
(0, swagger_1.ApiPropertyOptional)({
|
|
79
109
|
description: 'Filter by token type',
|
|
80
|
-
enum:
|
|
81
|
-
example: 'ERC20'
|
|
110
|
+
enum: types_1.NativeTokenTypes,
|
|
111
|
+
example: 'ERC20',
|
|
112
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
82
113
|
}),
|
|
83
114
|
(0, class_validator_1.IsOptional)(),
|
|
84
|
-
(
|
|
85
|
-
__metadata("design:type", String)
|
|
115
|
+
__metadata("design:type", Object)
|
|
86
116
|
], TransactionFiltersDTO.prototype, "tokenType", void 0);
|
|
87
117
|
/**
|
|
88
|
-
*
|
|
118
|
+
* DOMAIN-SPECIFIC: Complete transaction pagination request
|
|
89
119
|
*/
|
|
90
120
|
class TransactionPaginationRequestDTO extends pagination_request_dto_1.BasePaginationRequestDTO {
|
|
91
121
|
sortBy = 'createdAt';
|
|
@@ -103,7 +133,7 @@ __decorate([
|
|
|
103
133
|
(0, class_validator_1.IsIn)(TRANSACTION_SORT_FIELDS, {
|
|
104
134
|
message: `sortBy must be one of: ${TRANSACTION_SORT_FIELDS.join(', ')}`
|
|
105
135
|
}),
|
|
106
|
-
(0, class_transformer_1.Transform)(({ value }) => value ?? 'createdAt') //
|
|
136
|
+
(0, class_transformer_1.Transform)(({ value }) => value ?? 'createdAt') // Fallback transformation
|
|
107
137
|
,
|
|
108
138
|
__metadata("design:type", String)
|
|
109
139
|
], TransactionPaginationRequestDTO.prototype, "sortBy", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"transaction-pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { SortOrder } from "../enum";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* GENERIC: Core pagination contract
|
|
4
4
|
* Reusable across all domains (users, transactions, campaigns, etc.)
|
|
5
5
|
*/
|
|
6
6
|
export interface BasePaginationQuery {
|
|
7
7
|
readonly page?: number;
|
|
8
8
|
readonly limit?: number;
|
|
9
|
-
readonly sortBy
|
|
10
|
-
readonly sortOrder
|
|
9
|
+
readonly sortBy?: string;
|
|
10
|
+
readonly sortOrder?: SortOrder;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* GENERIC: Base filtering interface
|
|
14
14
|
* Extensible for domain-specific filters
|
|
15
15
|
*/
|
|
16
16
|
export interface BaseFilters {
|
|
@@ -18,13 +18,13 @@ export interface BaseFilters {
|
|
|
18
18
|
readonly dateTo?: Date;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* GENERIC: Complete pagination with filters
|
|
22
22
|
*/
|
|
23
23
|
export interface PaginationQuery<TFilters extends BaseFilters = BaseFilters> extends BasePaginationQuery {
|
|
24
24
|
readonly filters?: TFilters;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* GENERIC: Pagination metadata interface
|
|
28
28
|
*/
|
|
29
29
|
export interface PaginationMetadata {
|
|
30
30
|
readonly page: number | null;
|
|
@@ -35,7 +35,7 @@ export interface PaginationMetadata {
|
|
|
35
35
|
readonly hasPrev: boolean;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* GENERIC: Paginated response interface
|
|
39
39
|
*/
|
|
40
40
|
export interface PaginatedResponse<T> {
|
|
41
41
|
readonly data: ReadonlyArray<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/base-pagination.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base-pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/base-pagination.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAE3B;KAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAAE,GAExD;KAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE5C,eAAO,MAAM,sBAAsB,gDAAiD,CAAC;AAErF,MAAM,MAAM,mBAAmB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB,sDAAuD,CAAC;AAE7F,MAAM,MAAM,oBAAoB,GAAG,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ANALYTICS_GROUP_BY_TYPES = exports.ANALYTICS_METRIC_TYPES = void 0;
|
|
4
|
-
/* // ✅ EXPRESSION ALIASES: Results from CASE WHEN expressions and other computed fields
|
|
5
|
-
& { [key: string]: string | number | Date | undefined }; */
|
|
6
4
|
exports.ANALYTICS_METRIC_TYPES = ['count', 'sum', 'avg', 'min', 'max'];
|
|
7
5
|
exports.ANALYTICS_GROUP_BY_TYPES = ['month', 'week', 'day', 'year', 'quarter'];
|
|
8
6
|
//# sourceMappingURL=analytics.type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"analytics.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":";;;AASa,QAAA,sBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAIxE,QAAA,wBAAwB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC"}
|
|
@@ -7,8 +7,8 @@ import { BaseFilters, BasePaginationQuery } from '../../interfaces/base-paginati
|
|
|
7
7
|
export declare abstract class BasePaginationRequestDTO implements BasePaginationQuery {
|
|
8
8
|
readonly page?: number;
|
|
9
9
|
readonly limit?: number;
|
|
10
|
-
readonly sortOrder
|
|
11
|
-
abstract readonly sortBy
|
|
10
|
+
readonly sortOrder?: SortOrder;
|
|
11
|
+
abstract readonly sortBy?: string;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* ✅ GENERIC: Base filters DTO
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAE9F;;;GAGG;AACH,8BAAsB,wBAAyB,YAAW,mBAAmB;IAW3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAcvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAUxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAkB;
|
|
1
|
+
{"version":3,"file":"pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAE9F;;;GAGG;AACH,8BAAsB,wBAAyB,YAAW,mBAAmB;IAW3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAcvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAUxB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAkB;IAGhD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAOzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAQzB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;IAWnC,IAAI,CAAU;IAcd,KAAK,CAAU;IAUf,SAAS,
|
|
1
|
+
{"version":3,"file":"pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/pagination/pagination.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;IAWnC,IAAI,CAAU;IAcd,KAAK,CAAU;IAUf,SAAS,GAAe,SAAS,CAAC,IAAI,CAAC;CAIjD;AA5BU;IAVR,mBAAmB,CAAC;QACnB,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;IACD,UAAU,EAAE;IACZ,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;sDACgB;AAcd;IAZR,mBAAmB,CAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,UAAU,EAAE;IACZ,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,IAAI,CAAC;uDACc;AAUf;IARR,mBAAmB,CAAC;QACnB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,CAAC,SAAS,CAAC;QACjB,OAAO,EAAE,SAAS,CAAC,IAAI;QACvB,OAAO,EAAE,SAAS,CAAC,IAAI;KACxB,CAAC;IACD,UAAU,EAAE;IACZ,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;2DAC4B;AAMlD;;GAEG;AACH,MAAM,OAAgB,cAAc;IAOzB,QAAQ,CAAQ;IAQhB,MAAM,CAAQ;CACxB;AATU;IANR,mBAAmB,CAAC;QACnB,WAAW,EAAE,wDAAwD;QACrE,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,UAAU,EAAE;IACZ,YAAY,EAAE;gDACU;AAQhB;IANR,mBAAmB,CAAC;QACnB,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,UAAU,EAAE;IACZ,YAAY,EAAE;8CACQ"}
|
|
@@ -2,12 +2,15 @@ import { TransactionDTO } from './transaction.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
|
+
declare const TransactionAnalyticsFiltersDTO_base: import("@nestjs/common").Type<Partial<Omit<TransactionDTO, "createdAt" | "updatedAt">>>;
|
|
6
|
+
export declare class TransactionAnalyticsFiltersDTO extends TransactionAnalyticsFiltersDTO_base {
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
|
-
*
|
|
9
|
+
* ANALYTICS: Dynamic transaction analytics request
|
|
7
10
|
* Provides flexible filtering, grouping, and aggregation for frontend modules
|
|
8
11
|
*/
|
|
9
12
|
export declare class TransactionAnalyticsRequestDTO {
|
|
10
|
-
filters?:
|
|
13
|
+
filters?: TransactionAnalyticsFiltersDTO;
|
|
11
14
|
groupBy?: TransactionAnalyticsGroupByType[];
|
|
12
15
|
groupByExpressions?: GroupByExpressionDTO[];
|
|
13
16
|
metrics: AnalyticsMetricType[];
|
|
@@ -18,16 +21,11 @@ export declare class TransactionAnalyticsRequestDTO {
|
|
|
18
21
|
endDate?: Date;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
|
-
*
|
|
22
|
-
* Excludes only date fields (handled separately) and nullable fields that need special handling
|
|
23
|
-
*/
|
|
24
|
-
type TransactionAnalyticsFilters = Partial<Omit<TransactionDTO, 'createdAt' | 'updatedAt'>>;
|
|
25
|
-
/**
|
|
26
|
-
* llow grouping by any meaningful TransactionDTO field + computed time fields
|
|
24
|
+
* Allow grouping by any meaningful TransactionDTO field + computed time fields
|
|
27
25
|
*/
|
|
28
26
|
export type TransactionAnalyticsGroupByType = AnalyticsGroupByType | keyof Omit<TransactionDTO, 'createdAt' | 'updatedAt' | 'id' | 'transactionHash'>;
|
|
29
27
|
/**
|
|
30
|
-
*
|
|
28
|
+
* RESPONSE: Analytics result structure
|
|
31
29
|
*/
|
|
32
30
|
export declare class TransactionAnalyticsResponseDTO {
|
|
33
31
|
results: TransactionAnalyticsResultItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,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,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-analytics.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,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,sCAAsC,CAAC;;AAI5E,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,EAAE,mBAAmB,GAAG,WAAW,CAAW;IASpD,SAAS,EAAE,SAAS,CAAkB;IActC,KAAK,EAAE,MAAM,CAAM;IASnB,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;IAMxB,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;KACvB,CAEC;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"}
|
|
@@ -6,36 +6,41 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
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
|
-
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
9
|
+
import { ApiProperty, ApiPropertyOptional, OmitType, PartialType } from '@nestjs/swagger';
|
|
10
|
+
import { TransactionDTO } from './transaction.dto';
|
|
10
11
|
import { SortOrder, AccountOwnerType } from '../../enum';
|
|
11
12
|
import { ANALYTICS_METRIC_TYPES } from '../../types/analytics.type';
|
|
12
13
|
import { GroupByExpressionDTO } from '../analytics/group-by-expression.dto';
|
|
14
|
+
// Define the Filters DTO class first so it can be used in the Request DTO
|
|
15
|
+
// Uses OmitType and PartialType to create a type-safe definition that Swagger can understand
|
|
16
|
+
export class TransactionAnalyticsFiltersDTO extends PartialType(OmitType(TransactionDTO, ['createdAt', 'updatedAt'])) {
|
|
17
|
+
}
|
|
13
18
|
/**
|
|
14
|
-
*
|
|
19
|
+
* ANALYTICS: Dynamic transaction analytics request
|
|
15
20
|
* Provides flexible filtering, grouping, and aggregation for frontend modules
|
|
16
21
|
*/
|
|
17
22
|
export class TransactionAnalyticsRequestDTO {
|
|
18
|
-
//
|
|
23
|
+
// FILTERING OPTIONS (Dynamic keyof TransactionDTO)
|
|
19
24
|
filters;
|
|
20
|
-
//
|
|
25
|
+
// SIMPLE GROUPING OPTIONS (Fully Dynamic)
|
|
21
26
|
groupBy;
|
|
22
|
-
//
|
|
27
|
+
// COMPLEX GROUPING OPTIONS (CASE WHEN Support)
|
|
23
28
|
groupByExpressions;
|
|
24
|
-
//
|
|
29
|
+
// METRICS OPTIONS
|
|
25
30
|
metrics = ['count'];
|
|
26
|
-
//
|
|
31
|
+
// ORDERING OPTIONS
|
|
27
32
|
sortBy = 'count';
|
|
28
33
|
sortOrder = SortOrder.DESC;
|
|
29
|
-
//
|
|
34
|
+
// LIMIT OPTIONS
|
|
30
35
|
limit = 10;
|
|
31
|
-
//
|
|
36
|
+
// DATE RANGE OPTIONS
|
|
32
37
|
startDate;
|
|
33
38
|
endDate;
|
|
34
39
|
}
|
|
35
40
|
__decorate([
|
|
36
41
|
ApiPropertyOptional({
|
|
37
42
|
description: 'Dynamic filters based on TransactionDTO fields - all transaction fields available',
|
|
38
|
-
type:
|
|
43
|
+
type: TransactionAnalyticsFiltersDTO,
|
|
39
44
|
example: {
|
|
40
45
|
status: 'SUCCEEDED',
|
|
41
46
|
tokenType: 'STAMP',
|
|
@@ -45,7 +50,9 @@ __decorate([
|
|
|
45
50
|
}
|
|
46
51
|
}),
|
|
47
52
|
IsOptional(),
|
|
48
|
-
IsObject()
|
|
53
|
+
IsObject(),
|
|
54
|
+
ValidateNested(),
|
|
55
|
+
Type(() => TransactionAnalyticsFiltersDTO)
|
|
49
56
|
], TransactionAnalyticsRequestDTO.prototype, "filters", void 0);
|
|
50
57
|
__decorate([
|
|
51
58
|
ApiPropertyOptional({
|
|
@@ -95,7 +102,7 @@ __decorate([
|
|
|
95
102
|
__decorate([
|
|
96
103
|
ApiPropertyOptional({
|
|
97
104
|
description: 'Order direction',
|
|
98
|
-
enum:
|
|
105
|
+
enum: SortOrder,
|
|
99
106
|
example: SortOrder.DESC
|
|
100
107
|
}),
|
|
101
108
|
IsOptional(),
|
|
@@ -131,7 +138,7 @@ __decorate([
|
|
|
131
138
|
IsDateString()
|
|
132
139
|
], TransactionAnalyticsRequestDTO.prototype, "endDate", void 0);
|
|
133
140
|
/**
|
|
134
|
-
*
|
|
141
|
+
* RESPONSE: Analytics result structure
|
|
135
142
|
*/
|
|
136
143
|
export class TransactionAnalyticsResponseDTO {
|
|
137
144
|
results = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC1I,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-analytics.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-analytics.request.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,48 @@
|
|
|
1
1
|
import { type NativeTokenType } from '../../types';
|
|
2
2
|
import { TransactionStatus, Web3TransactionType, TransactionRole } from '../../enum';
|
|
3
3
|
import { BaseFiltersDTO, BasePaginationRequestDTO } from '../pagination/pagination.request.dto';
|
|
4
|
+
import { SortOrder } from '../../enum/sort-order.enum';
|
|
4
5
|
declare const TRANSACTION_SORT_FIELDS: readonly ["createdAt", "amount", "type", "tokenType", "status", "senderAddress", "recipientAddress"];
|
|
5
6
|
export type TransactionSortField = typeof TRANSACTION_SORT_FIELDS[number];
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
+
* DOMAIN-SPECIFIC: Transaction Pagination Params Interface (Frontend/Client Use)
|
|
9
|
+
*/
|
|
10
|
+
export interface TransactionPaginationParams {
|
|
11
|
+
page: number;
|
|
12
|
+
limit: number;
|
|
13
|
+
sortBy?: string;
|
|
14
|
+
sortOrder?: SortOrder;
|
|
15
|
+
filters?: {
|
|
16
|
+
search?: string;
|
|
17
|
+
participantId?: string;
|
|
18
|
+
participantAddress?: string;
|
|
19
|
+
tokenAddress?: string;
|
|
20
|
+
tokenType?: NativeTokenType | NativeTokenType[];
|
|
21
|
+
status?: TransactionStatus | TransactionStatus[];
|
|
22
|
+
role?: TransactionRole | TransactionRole[];
|
|
23
|
+
type?: Web3TransactionType | Web3TransactionType[];
|
|
24
|
+
dateFrom?: string;
|
|
25
|
+
dateTo?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* DOMAIN-SPECIFIC: Transaction filters
|
|
8
30
|
*/
|
|
9
31
|
export declare class TransactionFiltersDTO extends BaseFiltersDTO {
|
|
32
|
+
search?: string;
|
|
10
33
|
participantId?: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
34
|
+
participantAddress?: string;
|
|
35
|
+
tokenAddress?: string;
|
|
36
|
+
role?: TransactionRole | TransactionRole[];
|
|
37
|
+
status?: TransactionStatus | TransactionStatus[];
|
|
38
|
+
type?: Web3TransactionType | Web3TransactionType[];
|
|
39
|
+
tokenType?: NativeTokenType | NativeTokenType[];
|
|
15
40
|
}
|
|
16
41
|
/**
|
|
17
|
-
*
|
|
42
|
+
* DOMAIN-SPECIFIC: Complete transaction pagination request
|
|
18
43
|
*/
|
|
19
44
|
export declare class TransactionPaginationRequestDTO extends BasePaginationRequestDTO {
|
|
20
|
-
readonly sortBy
|
|
45
|
+
readonly sortBy?: TransactionSortField;
|
|
21
46
|
filters?: TransactionFiltersDTO;
|
|
22
47
|
}
|
|
23
48
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-pagination.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,QAAA,MAAM,uBAAuB,sGAQnB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAG5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;QAGhD,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;QAGnD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IAOvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAQhB,aAAa,CAAC,EAAE,MAAM,CAAC;IAQvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAQ5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAStB,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAQ3C,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IASjD,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IASnD,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,wBAAwB;IAa3E,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAe;IAOrD,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC"}
|
|
@@ -20,15 +20,26 @@ const TRANSACTION_SORT_FIELDS = [
|
|
|
20
20
|
'recipientAddress'
|
|
21
21
|
];
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* DOMAIN-SPECIFIC: Transaction filters
|
|
24
24
|
*/
|
|
25
25
|
export class TransactionFiltersDTO extends BaseFiltersDTO {
|
|
26
|
+
search;
|
|
26
27
|
participantId;
|
|
28
|
+
participantAddress;
|
|
29
|
+
tokenAddress;
|
|
27
30
|
role;
|
|
28
31
|
status;
|
|
29
32
|
type;
|
|
30
33
|
tokenType;
|
|
31
34
|
}
|
|
35
|
+
__decorate([
|
|
36
|
+
ApiPropertyOptional({
|
|
37
|
+
description: 'Wildcard search for ID, address or transaction hash',
|
|
38
|
+
example: '0x123...'
|
|
39
|
+
}),
|
|
40
|
+
IsOptional(),
|
|
41
|
+
IsString()
|
|
42
|
+
], TransactionFiltersDTO.prototype, "search", void 0);
|
|
32
43
|
__decorate([
|
|
33
44
|
ApiPropertyOptional({
|
|
34
45
|
description: 'Filter by participant ID (searches in both senderId and recipientId)',
|
|
@@ -39,41 +50,57 @@ __decorate([
|
|
|
39
50
|
], TransactionFiltersDTO.prototype, "participantId", void 0);
|
|
40
51
|
__decorate([
|
|
41
52
|
ApiPropertyOptional({
|
|
42
|
-
description: 'Filter by
|
|
43
|
-
|
|
44
|
-
example: 'SENDER'
|
|
53
|
+
description: 'Filter by participant wallet address',
|
|
54
|
+
example: '0x123...'
|
|
45
55
|
}),
|
|
46
56
|
IsOptional(),
|
|
47
57
|
IsString()
|
|
48
|
-
], TransactionFiltersDTO.prototype, "
|
|
58
|
+
], TransactionFiltersDTO.prototype, "participantAddress", void 0);
|
|
49
59
|
__decorate([
|
|
50
60
|
ApiPropertyOptional({
|
|
51
|
-
description: 'Filter by
|
|
52
|
-
example: '
|
|
61
|
+
description: 'Filter by token contract address',
|
|
62
|
+
example: '0xabc...'
|
|
53
63
|
}),
|
|
54
64
|
IsOptional(),
|
|
55
65
|
IsString()
|
|
66
|
+
], TransactionFiltersDTO.prototype, "tokenAddress", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
ApiPropertyOptional({
|
|
69
|
+
description: 'Filter by transaction role relative to participant',
|
|
70
|
+
enum: TransactionRole,
|
|
71
|
+
example: 'SENDER',
|
|
72
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
73
|
+
}),
|
|
74
|
+
IsOptional()
|
|
75
|
+
], TransactionFiltersDTO.prototype, "role", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
ApiPropertyOptional({
|
|
78
|
+
description: 'Filter by transaction status',
|
|
79
|
+
example: 'SUCCEEDED',
|
|
80
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
81
|
+
}),
|
|
82
|
+
IsOptional()
|
|
56
83
|
], TransactionFiltersDTO.prototype, "status", void 0);
|
|
57
84
|
__decorate([
|
|
58
85
|
ApiPropertyOptional({
|
|
59
86
|
description: 'Filter by transaction type',
|
|
60
|
-
enum:
|
|
61
|
-
example: 'MINT'
|
|
87
|
+
enum: Web3TransactionType,
|
|
88
|
+
example: 'MINT',
|
|
89
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
62
90
|
}),
|
|
63
|
-
IsOptional()
|
|
64
|
-
IsString()
|
|
91
|
+
IsOptional()
|
|
65
92
|
], TransactionFiltersDTO.prototype, "type", void 0);
|
|
66
93
|
__decorate([
|
|
67
94
|
ApiPropertyOptional({
|
|
68
95
|
description: 'Filter by token type',
|
|
69
|
-
enum:
|
|
70
|
-
example: 'ERC20'
|
|
96
|
+
enum: NativeTokenTypes,
|
|
97
|
+
example: 'ERC20',
|
|
98
|
+
oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }]
|
|
71
99
|
}),
|
|
72
|
-
IsOptional()
|
|
73
|
-
IsString()
|
|
100
|
+
IsOptional()
|
|
74
101
|
], TransactionFiltersDTO.prototype, "tokenType", void 0);
|
|
75
102
|
/**
|
|
76
|
-
*
|
|
103
|
+
* DOMAIN-SPECIFIC: Complete transaction pagination request
|
|
77
104
|
*/
|
|
78
105
|
export class TransactionPaginationRequestDTO extends BasePaginationRequestDTO {
|
|
79
106
|
sortBy = 'createdAt';
|
|
@@ -90,7 +117,7 @@ __decorate([
|
|
|
90
117
|
IsIn(TRANSACTION_SORT_FIELDS, {
|
|
91
118
|
message: `sortBy must be one of: ${TRANSACTION_SORT_FIELDS.join(', ')}`
|
|
92
119
|
}),
|
|
93
|
-
Transform(({ value }) => value ?? 'createdAt') //
|
|
120
|
+
Transform(({ value }) => value ?? 'createdAt') // Fallback transformation
|
|
94
121
|
], TransactionPaginationRequestDTO.prototype, "sortBy", void 0);
|
|
95
122
|
__decorate([
|
|
96
123
|
ApiPropertyOptional({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"transaction-pagination.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction-pagination.request.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { SortOrder } from "../enum";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* GENERIC: Core pagination contract
|
|
4
4
|
* Reusable across all domains (users, transactions, campaigns, etc.)
|
|
5
5
|
*/
|
|
6
6
|
export interface BasePaginationQuery {
|
|
7
7
|
readonly page?: number;
|
|
8
8
|
readonly limit?: number;
|
|
9
|
-
readonly sortBy
|
|
10
|
-
readonly sortOrder
|
|
9
|
+
readonly sortBy?: string;
|
|
10
|
+
readonly sortOrder?: SortOrder;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* GENERIC: Base filtering interface
|
|
14
14
|
* Extensible for domain-specific filters
|
|
15
15
|
*/
|
|
16
16
|
export interface BaseFilters {
|
|
@@ -18,13 +18,13 @@ export interface BaseFilters {
|
|
|
18
18
|
readonly dateTo?: Date;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* GENERIC: Complete pagination with filters
|
|
22
22
|
*/
|
|
23
23
|
export interface PaginationQuery<TFilters extends BaseFilters = BaseFilters> extends BasePaginationQuery {
|
|
24
24
|
readonly filters?: TFilters;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* GENERIC: Pagination metadata interface
|
|
28
28
|
*/
|
|
29
29
|
export interface PaginationMetadata {
|
|
30
30
|
readonly page: number | null;
|
|
@@ -35,7 +35,7 @@ export interface PaginationMetadata {
|
|
|
35
35
|
readonly hasPrev: boolean;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* GENERIC: Paginated response interface
|
|
39
39
|
*/
|
|
40
40
|
export interface PaginatedResponse<T> {
|
|
41
41
|
readonly data: ReadonlyArray<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/base-pagination.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base-pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/base-pagination.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAE3B;KAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAAE,GAExD;KAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE5C,eAAO,MAAM,sBAAsB,gDAAiD,CAAC;AAErF,MAAM,MAAM,mBAAmB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB,sDAAuD,CAAC;AAE7F,MAAM,MAAM,oBAAoB,GAAG,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* // ✅ EXPRESSION ALIASES: Results from CASE WHEN expressions and other computed fields
|
|
2
|
-
& { [key: string]: string | number | Date | undefined }; */
|
|
3
1
|
export const ANALYTICS_METRIC_TYPES = ['count', 'sum', 'avg', 'min', 'max'];
|
|
4
2
|
export const ANALYTICS_GROUP_BY_TYPES = ['month', 'week', 'day', 'year', 'quarter'];
|
|
5
3
|
//# sourceMappingURL=analytics.type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/analytics.type.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAIrF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC"}
|