@explorins/pers-shared 2.1.168 → 2.1.170
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/booking/booking.dto.d.ts +11 -34
- package/dist/cjs/shared-lib/dto/booking/booking.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/booking/booking.dto.js +46 -191
- package/dist/cjs/shared-lib/dto/booking/booking.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/data-source.dto.d.ts +13 -0
- package/dist/cjs/shared-lib/dto/data-source.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/data-source.dto.js +59 -0
- package/dist/cjs/shared-lib/dto/data-source.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/index.d.ts +1 -0
- package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/index.js +2 -0
- package/dist/cjs/shared-lib/dto/index.js.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts +3 -2
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js +13 -3
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionType.dto.d.ts +3 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionType.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionType.dto.js +23 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionType.dto.js.map +1 -1
- package/dist/cjs/shared-lib/types/redemption-include-relation.type.d.ts +3 -3
- package/dist/cjs/shared-lib/types/redemption-include-relation.type.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/redemption-include-relation.type.js +1 -1
- package/dist/cjs/shared-lib/types/redemption-include-relation.type.js.map +1 -1
- package/dist/esm/shared-lib/dto/booking/booking.dto.d.ts +11 -34
- package/dist/esm/shared-lib/dto/booking/booking.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/booking/booking.dto.js +48 -168
- package/dist/esm/shared-lib/dto/booking/booking.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/data-source.dto.d.ts +13 -0
- package/dist/esm/shared-lib/dto/data-source.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/data-source.dto.js +47 -0
- package/dist/esm/shared-lib/dto/data-source.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/index.d.ts +1 -0
- package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/index.js +2 -0
- package/dist/esm/shared-lib/dto/index.js.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts +3 -2
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.js +12 -3
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionType.dto.d.ts +3 -0
- package/dist/esm/shared-lib/dto/redemption/redemptionType.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionType.dto.js +22 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionType.dto.js.map +1 -1
- package/dist/esm/shared-lib/types/redemption-include-relation.type.d.ts +3 -3
- package/dist/esm/shared-lib/types/redemption-include-relation.type.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/redemption-include-relation.type.js +1 -1
- package/dist/esm/shared-lib/types/redemption-include-relation.type.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionType.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionType.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redemptionType.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionType.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,qBAAa,8BAA8B;IAMvC,IAAI,EAAE,MAAM,CAAM;IAOlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAOrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAUlB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAWlC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACtD;AACD,qBAAa,iBAAkB,SAAQ,8BAA8B;IAIjE,EAAE,EAAE,MAAM,CAAK;IAOf,sBAAsB,EAAE,MAAM,EAAE,CAAM;IAQtC,kBAAkB,EAAE,sBAAsB,GAAG,IAAI,CAAQ;CAC5D"}
|
|
@@ -18,6 +18,7 @@ class RedemptionTypeCreateRequestDTO {
|
|
|
18
18
|
description;
|
|
19
19
|
imageUrl;
|
|
20
20
|
baseRequiredUserFields;
|
|
21
|
+
bookingRequirement;
|
|
21
22
|
}
|
|
22
23
|
exports.RedemptionTypeCreateRequestDTO = RedemptionTypeCreateRequestDTO;
|
|
23
24
|
__decorate([
|
|
@@ -55,9 +56,22 @@ __decorate([
|
|
|
55
56
|
(0, class_validator_1.IsString)({ each: true }),
|
|
56
57
|
__metadata("design:type", Array)
|
|
57
58
|
], RedemptionTypeCreateRequestDTO.prototype, "baseRequiredUserFields", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
61
|
+
description: 'Default booking requirement for all redemptions of this type. Individual redemptions can override via specificBookingRequirement.',
|
|
62
|
+
type: String,
|
|
63
|
+
enum: ['active', 'future', 'past', 'active_future', 'any'],
|
|
64
|
+
nullable: true
|
|
65
|
+
}),
|
|
66
|
+
(0, decorators_1.OptionalStrip)(),
|
|
67
|
+
(0, class_validator_1.IsEnum)(['active', 'future', 'past', 'active_future', 'any']),
|
|
68
|
+
(0, class_validator_1.IsOptional)(),
|
|
69
|
+
__metadata("design:type", Object)
|
|
70
|
+
], RedemptionTypeCreateRequestDTO.prototype, "bookingRequirement", void 0);
|
|
58
71
|
class RedemptionTypeDTO extends RedemptionTypeCreateRequestDTO {
|
|
59
72
|
id = 0;
|
|
60
73
|
baseRequiredUserFields = [];
|
|
74
|
+
bookingRequirement = null;
|
|
61
75
|
}
|
|
62
76
|
exports.RedemptionTypeDTO = RedemptionTypeDTO;
|
|
63
77
|
__decorate([
|
|
@@ -74,4 +88,13 @@ __decorate([
|
|
|
74
88
|
}),
|
|
75
89
|
__metadata("design:type", Array)
|
|
76
90
|
], RedemptionTypeDTO.prototype, "baseRequiredUserFields", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
93
|
+
description: 'Default booking requirement for all redemptions of this type. Individual redemptions can override via specificBookingRequirement.',
|
|
94
|
+
type: String,
|
|
95
|
+
enum: ['active', 'future', 'past', 'active_future', 'any'],
|
|
96
|
+
nullable: true
|
|
97
|
+
}),
|
|
98
|
+
__metadata("design:type", Object)
|
|
99
|
+
], RedemptionTypeDTO.prototype, "bookingRequirement", void 0);
|
|
77
100
|
//# sourceMappingURL=redemptionType.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionType.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionType.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"redemptionType.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionType.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAA2F;AAC3F,iDAAiD;AAIjD,MAAa,8BAA8B;IAMvC,IAAI,GAAW,EAAE,CAAC;IAOlB,WAAW,CAAU;IAOrB,QAAQ,CAAU;IAUlB,sBAAsB,CAAY;IAWlC,kBAAkB,CAAiC;CACtD;AA1CD,wEA0CC;AApCG;IALC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,QAAQ;QACrB,WAAW,EAAE,sBAAsB;KACtC,CAAC;IACL,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4DACO;AAOlB;IALC,IAAA,6BAAmB,EAAC,EAAE,IAAI,EAAE,QAAQ;QAC7B,WAAW,EAAE,6BAA6B;KAC7C,CAAC;IACL,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;mEACU;AAOrB;IALC,IAAA,6BAAmB,EAAC,EAAE,IAAI,EAAE,QAAQ;QAC7B,WAAW,EAAE,2BAA2B;KAC3C,CAAC;IACL,IAAA,0BAAa,GAAE;IACf,IAAA,uBAAK,GAAE;;gEACU;AAUlB;IARC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,kJAAkJ;QAC/J,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,EAAE;KACd,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;8EACS;AAWlC;IATC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,mIAAmI;QAChJ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC;QAC1D,QAAQ,EAAE,IAAI;KACjB,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,wBAAM,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC5D,IAAA,4BAAU,GAAE;;0EACsC;AAEvD,MAAa,iBAAkB,SAAQ,8BAA8B;IAIjE,EAAE,GAAW,CAAC,CAAC;IAOf,sBAAsB,GAAa,EAAE,CAAC;IAQtC,kBAAkB,GAAkC,IAAI,CAAC;CAC5D;AApBD,8CAoBC;AAhBG;IAHC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oBAAoB;KACpC,CAAC;;6CACa;AAOf;IALC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,kJAAkJ;QAC/J,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,EAAE;KACd,CAAC;;iEACoC;AAQtC;IANC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,mIAAmI;QAChJ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC;QAC1D,QAAQ,EAAE,IAAI;KACjB,CAAC;;6DACuD"}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Follows JSON:API sideloading convention
|
|
5
5
|
*
|
|
6
|
-
* Usage: GET /redemptions?include=redeemCount,ownerBusiness,
|
|
6
|
+
* Usage: GET /redemptions?include=redeemCount,ownerBusiness,requiredUserInfo,booking
|
|
7
7
|
*
|
|
8
8
|
* - redeemCount: Include total number of redeems for the redemption
|
|
9
9
|
* - ownerBusiness: Include the owner business entity (when ownerBusinessId is set)
|
|
10
|
-
* -
|
|
10
|
+
* - requiredUserInfo: Include required user info validation with field definitions and isValid flag.
|
|
11
11
|
* When user is authenticated, each definition includes `isMissing: boolean` to indicate
|
|
12
12
|
* if the user lacks that field. `isValid` summarizes if all required fields are satisfied.
|
|
13
13
|
* - booking: Include booking validation status. When user is authenticated and
|
|
14
14
|
* redemption has booking requirement, includes `isValid` flag and matching `data`.
|
|
15
15
|
*/
|
|
16
|
-
export type RedemptionIncludeRelation = 'redeemCount' | 'ownerBusiness' | '
|
|
16
|
+
export type RedemptionIncludeRelation = 'redeemCount' | 'ownerBusiness' | 'requiredUserInfo' | 'booking';
|
|
17
17
|
/**
|
|
18
18
|
* Array of all valid redemption include relations
|
|
19
19
|
* Used for runtime validation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption-include-relation.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"redemption-include-relation.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAEzG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,yBAAyB,EAKjE,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,yBAAyB,CAE3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption-include-relation.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":";;;AAkCA,8DAEC;AAnBD;;;GAGG;AACU,QAAA,0BAA0B,GAAyC;IAC9E,aAAa;IACb,eAAe;IACf,
|
|
1
|
+
{"version":3,"file":"redemption-include-relation.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/redemption-include-relation.type.ts"],"names":[],"mappings":";;;AAkCA,8DAEC;AAnBD;;;GAGG;AACU,QAAA,0BAA0B,GAAyC;IAC9E,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,SAAS;CACD,CAAC;AAEX;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,KAAa;IACrD,OAAO,kCAA0B,CAAC,QAAQ,CAAC,KAAkC,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import type { BookingStatus, LocationType } from '../../types/booking.type';
|
|
2
|
-
import type { DataSource
|
|
3
|
-
|
|
4
|
-
* DTO for DataSource tracking (nested object).
|
|
5
|
-
*/
|
|
6
|
-
export declare class DataSourceDTO {
|
|
7
|
-
channel: DataSourceChannel;
|
|
8
|
-
medium?: string;
|
|
9
|
-
campaign?: string;
|
|
10
|
-
source?: string;
|
|
11
|
-
referrer?: string;
|
|
12
|
-
}
|
|
2
|
+
import type { DataSource } from '../../types/data-source.type';
|
|
3
|
+
export { DataSourceDTO } from '../data-source.dto';
|
|
13
4
|
/**
|
|
14
5
|
* Booking DTO for API responses.
|
|
6
|
+
* Contains all fields including computed/system fields.
|
|
15
7
|
*/
|
|
16
8
|
export declare class BookingDTO {
|
|
17
9
|
id: string;
|
|
18
|
-
userId
|
|
10
|
+
userId?: string;
|
|
19
11
|
locationName: string;
|
|
20
12
|
locationType: LocationType;
|
|
21
13
|
businessId?: string | null;
|
|
@@ -30,35 +22,20 @@ export declare class BookingDTO {
|
|
|
30
22
|
createdAt: Date;
|
|
31
23
|
updatedAt: Date;
|
|
32
24
|
}
|
|
25
|
+
declare const CreateBookingDTO_base: import("@nestjs/common").Type<Omit<BookingDTO, "id" | "createdAt" | "updatedAt" | "status">>;
|
|
33
26
|
/**
|
|
34
27
|
* DTO for creating a new booking.
|
|
28
|
+
* Omits system-managed fields (id, status, timestamps).
|
|
29
|
+
* userId is optional (can be inferred from route param).
|
|
35
30
|
*/
|
|
36
|
-
export declare class CreateBookingDTO {
|
|
37
|
-
userId?: string;
|
|
38
|
-
locationName: string;
|
|
39
|
-
locationType?: LocationType;
|
|
40
|
-
businessId?: string;
|
|
41
|
-
checkInDate: string;
|
|
42
|
-
checkOutDate: string;
|
|
43
|
-
confirmationNumber?: string;
|
|
44
|
-
externalRef?: string;
|
|
45
|
-
guests?: number;
|
|
46
|
-
dataSource?: DataSourceDTO;
|
|
47
|
-
notes?: string;
|
|
31
|
+
export declare class CreateBookingDTO extends CreateBookingDTO_base {
|
|
48
32
|
}
|
|
33
|
+
declare const UpdateBookingDTO_base: import("@nestjs/common").Type<Partial<Omit<BookingDTO, "userId" | "id" | "createdAt" | "updatedAt" | "status">>>;
|
|
49
34
|
/**
|
|
50
35
|
* DTO for updating an existing booking.
|
|
36
|
+
* All fields optional. userId cannot be changed after creation.
|
|
51
37
|
*/
|
|
52
|
-
export declare class UpdateBookingDTO {
|
|
53
|
-
locationName?: string;
|
|
54
|
-
locationType?: LocationType;
|
|
55
|
-
businessId?: string | null;
|
|
56
|
-
checkInDate?: string;
|
|
57
|
-
checkOutDate?: string;
|
|
58
|
-
confirmationNumber?: string | null;
|
|
59
|
-
externalRef?: string | null;
|
|
60
|
-
guests?: number;
|
|
61
|
-
notes?: string | null;
|
|
38
|
+
export declare class UpdateBookingDTO extends UpdateBookingDTO_base {
|
|
62
39
|
}
|
|
63
40
|
/**
|
|
64
41
|
* Filter options for querying bookings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/booking/booking.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"booking.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/booking/booking.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,UAAU;IAErB,EAAE,EAAE,MAAM,CAAM;IAKhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,YAAY,EAAE,MAAM,CAAM;IAQ1B,YAAY,EAAE,YAAY,CAAc;IAKxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAM;IAIhC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAM;IAKjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKnC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAO5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,UAAU,CAAC,EAAE,UAAU,CAAC;IAKxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,MAAM,CAAC,EAAE,aAAa,CAAC;IAGvB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B;;AAOD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,qBAA2C;CAAG;;AAEpF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAErC;CAAG;AAEJ;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB"}
|
|
@@ -4,49 +4,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
7
|
+
import { ApiProperty, ApiPropertyOptional, OmitType, PartialType } from '@nestjs/swagger';
|
|
8
8
|
import { IsString, IsUUID, IsDateString, IsOptional, IsInt, IsEnum, Min, Max, ValidateNested } from 'class-validator';
|
|
9
9
|
import { Type } from 'class-transformer';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export class DataSourceDTO {
|
|
14
|
-
channel = 'admin';
|
|
15
|
-
medium;
|
|
16
|
-
campaign;
|
|
17
|
-
source;
|
|
18
|
-
referrer;
|
|
19
|
-
}
|
|
20
|
-
__decorate([
|
|
21
|
-
ApiProperty({ description: 'Primary data channel', enum: ['web', 'mobile', 'api', 'admin', 'system', 'import', 'webhook', 'sync', 'migration'] }),
|
|
22
|
-
IsEnum(['web', 'mobile', 'api', 'admin', 'system', 'import', 'webhook', 'sync', 'migration'])
|
|
23
|
-
], DataSourceDTO.prototype, "channel", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
ApiPropertyOptional({ description: 'Marketing medium (email, referral, direct, etc.)' }),
|
|
26
|
-
IsString(),
|
|
27
|
-
IsOptional()
|
|
28
|
-
], DataSourceDTO.prototype, "medium", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
ApiPropertyOptional({ description: 'Campaign identifier' }),
|
|
31
|
-
IsString(),
|
|
32
|
-
IsOptional()
|
|
33
|
-
], DataSourceDTO.prototype, "campaign", void 0);
|
|
34
|
-
__decorate([
|
|
35
|
-
ApiPropertyOptional({ description: 'Traffic source reference' }),
|
|
36
|
-
IsString(),
|
|
37
|
-
IsOptional()
|
|
38
|
-
], DataSourceDTO.prototype, "source", void 0);
|
|
39
|
-
__decorate([
|
|
40
|
-
ApiPropertyOptional({ description: 'Referrer URL' }),
|
|
41
|
-
IsString(),
|
|
42
|
-
IsOptional()
|
|
43
|
-
], DataSourceDTO.prototype, "referrer", void 0);
|
|
10
|
+
import { DataSourceDTO } from '../data-source.dto.js';
|
|
11
|
+
// Re-export for backward compatibility
|
|
12
|
+
export { DataSourceDTO } from '../data-source.dto.js';
|
|
44
13
|
/**
|
|
45
14
|
* Booking DTO for API responses.
|
|
15
|
+
* Contains all fields including computed/system fields.
|
|
46
16
|
*/
|
|
47
17
|
export class BookingDTO {
|
|
48
18
|
id = '';
|
|
49
|
-
userId
|
|
19
|
+
userId;
|
|
50
20
|
locationName = '';
|
|
51
21
|
locationType = 'property';
|
|
52
22
|
businessId;
|
|
@@ -65,177 +35,87 @@ __decorate([
|
|
|
65
35
|
ApiProperty({ description: 'Booking ID' })
|
|
66
36
|
], BookingDTO.prototype, "id", void 0);
|
|
67
37
|
__decorate([
|
|
68
|
-
|
|
69
|
-
], BookingDTO.prototype, "userId", void 0);
|
|
70
|
-
__decorate([
|
|
71
|
-
ApiProperty({ description: 'Location/venue name' })
|
|
72
|
-
], BookingDTO.prototype, "locationName", void 0);
|
|
73
|
-
__decorate([
|
|
74
|
-
ApiProperty({ description: 'Location type', enum: ['property', 'service', 'event', 'experience', 'destination'] })
|
|
75
|
-
], BookingDTO.prototype, "locationType", void 0);
|
|
76
|
-
__decorate([
|
|
77
|
-
ApiPropertyOptional({ description: 'Optional link to business entity' })
|
|
78
|
-
], BookingDTO.prototype, "businessId", void 0);
|
|
79
|
-
__decorate([
|
|
80
|
-
ApiProperty({ description: 'Check-in/start date (YYYY-MM-DD)', type: String })
|
|
81
|
-
], BookingDTO.prototype, "checkInDate", void 0);
|
|
82
|
-
__decorate([
|
|
83
|
-
ApiProperty({ description: 'Check-out/end date (YYYY-MM-DD)', type: String })
|
|
84
|
-
], BookingDTO.prototype, "checkOutDate", void 0);
|
|
85
|
-
__decorate([
|
|
86
|
-
ApiPropertyOptional({ description: 'Confirmation or booking reference number' })
|
|
87
|
-
], BookingDTO.prototype, "confirmationNumber", void 0);
|
|
88
|
-
__decorate([
|
|
89
|
-
ApiPropertyOptional({ description: 'External reference ID (PMS, OTA)' })
|
|
90
|
-
], BookingDTO.prototype, "externalRef", void 0);
|
|
91
|
-
__decorate([
|
|
92
|
-
ApiPropertyOptional({ description: 'Number of guests', default: 1 })
|
|
93
|
-
], BookingDTO.prototype, "guests", void 0);
|
|
94
|
-
__decorate([
|
|
95
|
-
ApiPropertyOptional({ description: 'Data source tracking', type: DataSourceDTO })
|
|
96
|
-
], BookingDTO.prototype, "dataSource", void 0);
|
|
97
|
-
__decorate([
|
|
98
|
-
ApiPropertyOptional({ description: 'Additional notes' })
|
|
99
|
-
], BookingDTO.prototype, "notes", void 0);
|
|
100
|
-
__decorate([
|
|
101
|
-
ApiPropertyOptional({ description: 'Computed booking status', enum: ['past', 'active', 'future'] })
|
|
102
|
-
], BookingDTO.prototype, "status", void 0);
|
|
103
|
-
__decorate([
|
|
104
|
-
ApiProperty({ description: 'Created timestamp' })
|
|
105
|
-
], BookingDTO.prototype, "createdAt", void 0);
|
|
106
|
-
__decorate([
|
|
107
|
-
ApiProperty({ description: 'Updated timestamp' })
|
|
108
|
-
], BookingDTO.prototype, "updatedAt", void 0);
|
|
109
|
-
/**
|
|
110
|
-
* DTO for creating a new booking.
|
|
111
|
-
*/
|
|
112
|
-
export class CreateBookingDTO {
|
|
113
|
-
userId;
|
|
114
|
-
locationName = '';
|
|
115
|
-
locationType;
|
|
116
|
-
businessId;
|
|
117
|
-
checkInDate = '';
|
|
118
|
-
checkOutDate = '';
|
|
119
|
-
confirmationNumber;
|
|
120
|
-
externalRef;
|
|
121
|
-
guests;
|
|
122
|
-
dataSource;
|
|
123
|
-
notes;
|
|
124
|
-
}
|
|
125
|
-
__decorate([
|
|
126
|
-
ApiPropertyOptional({ description: 'User ID (required when not using /users/:userId endpoint)' }),
|
|
38
|
+
ApiPropertyOptional({ description: 'User ID who owns this booking (always present in responses, optional in create when using route param)' }),
|
|
127
39
|
IsUUID(),
|
|
128
40
|
IsOptional()
|
|
129
|
-
],
|
|
41
|
+
], BookingDTO.prototype, "userId", void 0);
|
|
130
42
|
__decorate([
|
|
131
43
|
ApiProperty({ description: 'Location/venue name' }),
|
|
132
44
|
IsString()
|
|
133
|
-
],
|
|
45
|
+
], BookingDTO.prototype, "locationName", void 0);
|
|
134
46
|
__decorate([
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
47
|
+
ApiProperty({
|
|
48
|
+
description: 'Location type',
|
|
49
|
+
enum: ['property', 'service', 'event', 'experience', 'destination'],
|
|
50
|
+
default: 'property'
|
|
51
|
+
}),
|
|
52
|
+
IsEnum(['property', 'service', 'event', 'experience', 'destination'])
|
|
53
|
+
], BookingDTO.prototype, "locationType", void 0);
|
|
139
54
|
__decorate([
|
|
140
55
|
ApiPropertyOptional({ description: 'Optional link to business entity' }),
|
|
141
56
|
IsUUID(),
|
|
142
57
|
IsOptional()
|
|
143
|
-
],
|
|
58
|
+
], BookingDTO.prototype, "businessId", void 0);
|
|
144
59
|
__decorate([
|
|
145
|
-
ApiProperty({ description: 'Check-in/start date (YYYY-MM-DD)', example: '2026-06-01' }),
|
|
60
|
+
ApiProperty({ description: 'Check-in/start date (YYYY-MM-DD)', type: String, example: '2026-06-01' }),
|
|
146
61
|
IsDateString()
|
|
147
|
-
],
|
|
62
|
+
], BookingDTO.prototype, "checkInDate", void 0);
|
|
148
63
|
__decorate([
|
|
149
|
-
ApiProperty({ description: 'Check-out/end date (YYYY-MM-DD)', example: '2026-06-05' }),
|
|
64
|
+
ApiProperty({ description: 'Check-out/end date (YYYY-MM-DD)', type: String, example: '2026-06-05' }),
|
|
150
65
|
IsDateString()
|
|
151
|
-
],
|
|
66
|
+
], BookingDTO.prototype, "checkOutDate", void 0);
|
|
152
67
|
__decorate([
|
|
153
68
|
ApiPropertyOptional({ description: 'Confirmation or booking reference number' }),
|
|
154
69
|
IsString(),
|
|
155
70
|
IsOptional()
|
|
156
|
-
],
|
|
71
|
+
], BookingDTO.prototype, "confirmationNumber", void 0);
|
|
157
72
|
__decorate([
|
|
158
73
|
ApiPropertyOptional({ description: 'External reference ID (PMS, OTA)' }),
|
|
159
74
|
IsString(),
|
|
160
75
|
IsOptional()
|
|
161
|
-
],
|
|
76
|
+
], BookingDTO.prototype, "externalRef", void 0);
|
|
162
77
|
__decorate([
|
|
163
78
|
ApiPropertyOptional({ description: 'Number of guests', default: 1, minimum: 1, maximum: 100 }),
|
|
164
79
|
IsInt(),
|
|
165
80
|
Min(1),
|
|
166
81
|
Max(100),
|
|
167
82
|
IsOptional()
|
|
168
|
-
],
|
|
83
|
+
], BookingDTO.prototype, "guests", void 0);
|
|
169
84
|
__decorate([
|
|
170
85
|
ApiPropertyOptional({ description: 'Data source tracking', type: DataSourceDTO }),
|
|
171
86
|
ValidateNested(),
|
|
172
87
|
Type(() => DataSourceDTO),
|
|
173
88
|
IsOptional()
|
|
174
|
-
],
|
|
89
|
+
], BookingDTO.prototype, "dataSource", void 0);
|
|
175
90
|
__decorate([
|
|
176
91
|
ApiPropertyOptional({ description: 'Additional notes' }),
|
|
177
92
|
IsString(),
|
|
178
93
|
IsOptional()
|
|
179
|
-
],
|
|
94
|
+
], BookingDTO.prototype, "notes", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
ApiPropertyOptional({ description: 'Computed booking status', enum: ['past', 'active', 'future'] })
|
|
97
|
+
], BookingDTO.prototype, "status", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
ApiProperty({ description: 'Created timestamp' })
|
|
100
|
+
], BookingDTO.prototype, "createdAt", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
ApiProperty({ description: 'Updated timestamp' })
|
|
103
|
+
], BookingDTO.prototype, "updatedAt", void 0);
|
|
104
|
+
/**
|
|
105
|
+
* Fields that are system-managed and not user-provided.
|
|
106
|
+
*/
|
|
107
|
+
const BOOKING_SYSTEM_FIELDS = ['id', 'status', 'createdAt', 'updatedAt'];
|
|
108
|
+
/**
|
|
109
|
+
* DTO for creating a new booking.
|
|
110
|
+
* Omits system-managed fields (id, status, timestamps).
|
|
111
|
+
* userId is optional (can be inferred from route param).
|
|
112
|
+
*/
|
|
113
|
+
export class CreateBookingDTO extends OmitType(BookingDTO, BOOKING_SYSTEM_FIELDS) {
|
|
114
|
+
}
|
|
180
115
|
/**
|
|
181
116
|
* DTO for updating an existing booking.
|
|
117
|
+
* All fields optional. userId cannot be changed after creation.
|
|
182
118
|
*/
|
|
183
|
-
export class UpdateBookingDTO {
|
|
184
|
-
locationName;
|
|
185
|
-
locationType;
|
|
186
|
-
businessId;
|
|
187
|
-
checkInDate;
|
|
188
|
-
checkOutDate;
|
|
189
|
-
confirmationNumber;
|
|
190
|
-
externalRef;
|
|
191
|
-
guests;
|
|
192
|
-
notes;
|
|
119
|
+
export class UpdateBookingDTO extends PartialType(OmitType(BookingDTO, [...BOOKING_SYSTEM_FIELDS, 'userId'])) {
|
|
193
120
|
}
|
|
194
|
-
__decorate([
|
|
195
|
-
ApiPropertyOptional({ description: 'Location/venue name' }),
|
|
196
|
-
IsString(),
|
|
197
|
-
IsOptional()
|
|
198
|
-
], UpdateBookingDTO.prototype, "locationName", void 0);
|
|
199
|
-
__decorate([
|
|
200
|
-
ApiPropertyOptional({ description: 'Location type', enum: ['property', 'service', 'event', 'experience', 'destination'] }),
|
|
201
|
-
IsEnum(['property', 'service', 'event', 'experience', 'destination']),
|
|
202
|
-
IsOptional()
|
|
203
|
-
], UpdateBookingDTO.prototype, "locationType", void 0);
|
|
204
|
-
__decorate([
|
|
205
|
-
ApiPropertyOptional({ description: 'Optional link to business entity' }),
|
|
206
|
-
IsUUID(),
|
|
207
|
-
IsOptional()
|
|
208
|
-
], UpdateBookingDTO.prototype, "businessId", void 0);
|
|
209
|
-
__decorate([
|
|
210
|
-
ApiPropertyOptional({ description: 'Check-in/start date (YYYY-MM-DD)' }),
|
|
211
|
-
IsDateString(),
|
|
212
|
-
IsOptional()
|
|
213
|
-
], UpdateBookingDTO.prototype, "checkInDate", void 0);
|
|
214
|
-
__decorate([
|
|
215
|
-
ApiPropertyOptional({ description: 'Check-out/end date (YYYY-MM-DD)' }),
|
|
216
|
-
IsDateString(),
|
|
217
|
-
IsOptional()
|
|
218
|
-
], UpdateBookingDTO.prototype, "checkOutDate", void 0);
|
|
219
|
-
__decorate([
|
|
220
|
-
ApiPropertyOptional({ description: 'Confirmation or booking reference number' }),
|
|
221
|
-
IsString(),
|
|
222
|
-
IsOptional()
|
|
223
|
-
], UpdateBookingDTO.prototype, "confirmationNumber", void 0);
|
|
224
|
-
__decorate([
|
|
225
|
-
ApiPropertyOptional({ description: 'External reference ID (PMS, OTA)' }),
|
|
226
|
-
IsString(),
|
|
227
|
-
IsOptional()
|
|
228
|
-
], UpdateBookingDTO.prototype, "externalRef", void 0);
|
|
229
|
-
__decorate([
|
|
230
|
-
ApiPropertyOptional({ description: 'Number of guests' }),
|
|
231
|
-
IsInt(),
|
|
232
|
-
Min(1),
|
|
233
|
-
Max(100),
|
|
234
|
-
IsOptional()
|
|
235
|
-
], UpdateBookingDTO.prototype, "guests", void 0);
|
|
236
|
-
__decorate([
|
|
237
|
-
ApiPropertyOptional({ description: 'Additional notes' }),
|
|
238
|
-
IsString(),
|
|
239
|
-
IsOptional()
|
|
240
|
-
], UpdateBookingDTO.prototype, "notes", void 0);
|
|
241
121
|
//# sourceMappingURL=booking.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/booking/booking.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"booking.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/booking/booking.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DataSourceChannel } from '../types/data-source.type';
|
|
2
|
+
/**
|
|
3
|
+
* DTO for DataSource tracking.
|
|
4
|
+
* Tracks where data originated from for analytics and attribution.
|
|
5
|
+
*/
|
|
6
|
+
export declare class DataSourceDTO {
|
|
7
|
+
channel: DataSourceChannel;
|
|
8
|
+
medium?: string;
|
|
9
|
+
campaign?: string;
|
|
10
|
+
source?: string;
|
|
11
|
+
referrer?: string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data-source.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-source.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/data-source.dto.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;GAGG;AACH,qBAAa,aAAa;IAMxB,OAAO,EAAE,iBAAiB,CAAW;IAKrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 { IsString, IsOptional, IsEnum } from 'class-validator';
|
|
9
|
+
/**
|
|
10
|
+
* DTO for DataSource tracking.
|
|
11
|
+
* Tracks where data originated from for analytics and attribution.
|
|
12
|
+
*/
|
|
13
|
+
export class DataSourceDTO {
|
|
14
|
+
channel = 'admin';
|
|
15
|
+
medium;
|
|
16
|
+
campaign;
|
|
17
|
+
source;
|
|
18
|
+
referrer;
|
|
19
|
+
}
|
|
20
|
+
__decorate([
|
|
21
|
+
ApiProperty({
|
|
22
|
+
description: 'Primary data channel',
|
|
23
|
+
enum: ['web', 'mobile', 'api', 'admin', 'system', 'import', 'webhook', 'sync', 'migration']
|
|
24
|
+
}),
|
|
25
|
+
IsEnum(['web', 'mobile', 'api', 'admin', 'system', 'import', 'webhook', 'sync', 'migration'])
|
|
26
|
+
], DataSourceDTO.prototype, "channel", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
ApiPropertyOptional({ description: 'Marketing medium (email, referral, direct, etc.)' }),
|
|
29
|
+
IsString(),
|
|
30
|
+
IsOptional()
|
|
31
|
+
], DataSourceDTO.prototype, "medium", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
ApiPropertyOptional({ description: 'Campaign identifier' }),
|
|
34
|
+
IsString(),
|
|
35
|
+
IsOptional()
|
|
36
|
+
], DataSourceDTO.prototype, "campaign", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
ApiPropertyOptional({ description: 'Traffic source reference' }),
|
|
39
|
+
IsString(),
|
|
40
|
+
IsOptional()
|
|
41
|
+
], DataSourceDTO.prototype, "source", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
ApiPropertyOptional({ description: 'Referrer URL' }),
|
|
44
|
+
IsString(),
|
|
45
|
+
IsOptional()
|
|
46
|
+
], DataSourceDTO.prototype, "referrer", void 0);
|
|
47
|
+
//# sourceMappingURL=data-source.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-source.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/data-source.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG/D;;;GAGG;AACH,MAAM,OAAO,aAAa;IAMxB,OAAO,GAAsB,OAAO,CAAC;IAKrC,MAAM,CAAU;IAKhB,QAAQ,CAAU;IAKlB,MAAM,CAAU;IAKhB,QAAQ,CAAU;CACnB;AArBC;IALC,WAAW,CAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;KAC5F,CAAC;IACD,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;8CACzD;AAKrC;IAHC,mBAAmB,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;IACxF,QAAQ,EAAE;IACV,UAAU,EAAE;6CACG;AAKhB;IAHC,mBAAmB,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC3D,QAAQ,EAAE;IACV,UAAU,EAAE;+CACK;AAKlB;IAHC,mBAAmB,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAChE,QAAQ,EAAE;IACV,UAAU,EAAE;6CACG;AAKhB;IAHC,mBAAmB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACpD,QAAQ,EAAE;IACV,UAAU,EAAE;+CACK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAIA,cAAc,MAAM,CAAC;AAGrB,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAE1B,cAAc,QAAQ,CAAA;AAGtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,YAAY,CAAC;AAI3B,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAIA,cAAc,MAAM,CAAC;AAGrB,cAAc,aAAa,CAAC;AAG5B,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAA;AAE1B,cAAc,QAAQ,CAAA;AAGtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAI3B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAGzB,cAAc,YAAY,CAAC;AAI3B,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC"}
|
|
@@ -26,6 +26,8 @@ export * from './wallet.dto.js';
|
|
|
26
26
|
export * from './token/index.js';
|
|
27
27
|
// Transaction DTOs
|
|
28
28
|
export * from './transaction/index.js';
|
|
29
|
+
// Data Source DTO (shared)
|
|
30
|
+
export * from './data-source.dto.js';
|
|
29
31
|
// Purchase DTOs
|
|
30
32
|
export * from './purchase/index.js';
|
|
31
33
|
// Redemption DTOs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qFAAqF;AAErF,UAAU;AACV,cAAc,MAAM,CAAC;AAErB,iBAAiB;AACjB,cAAc,aAAa,CAAC;AAE5B,YAAY;AACZ,cAAc,QAAQ,CAAC;AAEvB,gBAAgB;AAChB,cAAc,YAAY,CAAA;AAE1B,cAAc,QAAQ,CAAA;AAEtB,YAAY;AACZ,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAE/C,sBAAsB;AACtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,eAAe,CAAC;AAE9B,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,kBAAkB;AAClB,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAEzB,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,uBAAuB;AACvB,cAAc,mBAAmB,CAAA;AAEjC,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AAEvC,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAElC,aAAa;AACb,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,WAAW,CAAC;AAE1B,eAAe;AACf,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qFAAqF;AAErF,UAAU;AACV,cAAc,MAAM,CAAC;AAErB,iBAAiB;AACjB,cAAc,aAAa,CAAC;AAE5B,YAAY;AACZ,cAAc,QAAQ,CAAC;AAEvB,gBAAgB;AAChB,cAAc,YAAY,CAAA;AAE1B,cAAc,QAAQ,CAAA;AAEtB,YAAY;AACZ,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAE/C,sBAAsB;AACtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,eAAe,CAAC;AAE9B,2BAA2B;AAC3B,cAAc,mBAAmB,CAAC;AAElC,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,kBAAkB;AAClB,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAA;AAEzB,gBAAgB;AAChB,cAAc,YAAY,CAAC;AAG3B,uBAAuB;AACvB,cAAc,mBAAmB,CAAA;AAEjC,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AAEvC,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,cAAc,mBAAmB,CAAC;AAElC,aAAa;AACb,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,WAAW,CAAC;AAE1B,eAAe;AACf,cAAc,WAAW,CAAC"}
|
|
@@ -38,12 +38,13 @@ export declare class RedemptionDTO {
|
|
|
38
38
|
context?: DynamicContext;
|
|
39
39
|
specificRequiredUserFields: string[];
|
|
40
40
|
requiredUserFields: string[];
|
|
41
|
+
specificBookingRequirement?: BookingRequirementType | null;
|
|
41
42
|
bookingRequirement?: BookingRequirementType | null;
|
|
42
43
|
included?: {
|
|
43
44
|
redeemCount?: number;
|
|
44
45
|
ownerBusiness?: BusinessDTO;
|
|
45
|
-
/**
|
|
46
|
-
|
|
46
|
+
/** Required user info validation. Only set when requiredUserFields is non-empty + user authenticated. */
|
|
47
|
+
requiredUserInfo?: {
|
|
47
48
|
/** Field definitions with isMissing status. Filter by isMissing to see what's missing. */
|
|
48
49
|
fieldDefinitions: RequiredFieldDefinitionWithStatus[];
|
|
49
50
|
/** True if user has all required fields. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemption.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,sGAAsG;AACtG,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG,sBAAsB,CAAC;AAExF,uGAAuG;AACvG,MAAM,MAAM,iCAAiC,GAAG,uBAAuB,GAAG;IACtE,kIAAkI;IAClI,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAGF,qBAAa,aAAa;IAKtB,EAAE,EAAE,MAAM,CAAM;IAOhB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOlC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAO9B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IAK5B,QAAQ,EAAE,OAAO,CAAS;IAK1B,iBAAiB,EAAE,MAAM,CAAK;IAO9B,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAMrC,UAAU,EAAE,YAAY,EAAE,CAAM;IAOhC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAI;IAQxB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAO;IAKhC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAO1B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAOlD,uBAAuB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAQhD,IAAI,EAAE,MAAM,EAAE,CAAM;IAOpB,OAAO,CAAC,EAAE,cAAc,CAAC;IAOzB,0BAA0B,EAAE,MAAM,EAAE,CAAM;IAO1C,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAQlC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAwCnD,QAAQ,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,WAAW,CAAC;QAC5B,
|
|
1
|
+
{"version":3,"file":"redemption.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemption.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,sGAAsG;AACtG,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG,sBAAsB,CAAC;AAExF,uGAAuG;AACvG,MAAM,MAAM,iCAAiC,GAAG,uBAAuB,GAAG;IACtE,kIAAkI;IAClI,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAGF,qBAAa,aAAa;IAKtB,EAAE,EAAE,MAAM,CAAM;IAOhB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOlC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAO9B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IAK5B,QAAQ,EAAE,OAAO,CAAS;IAK1B,iBAAiB,EAAE,MAAM,CAAK;IAO9B,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAMrC,UAAU,EAAE,YAAY,EAAE,CAAM;IAOhC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAI;IAQxB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAO;IAKhC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAO1B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAOlD,uBAAuB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAQhD,IAAI,EAAE,MAAM,EAAE,CAAM;IAOpB,OAAO,CAAC,EAAE,cAAc,CAAC;IAOzB,0BAA0B,EAAE,MAAM,EAAE,CAAM;IAO1C,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAQlC,0BAA0B,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAQ3D,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAwCnD,QAAQ,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,WAAW,CAAC;QAC5B,yGAAyG;QACzG,gBAAgB,CAAC,EAAE;YACf,0FAA0F;YAC1F,gBAAgB,EAAE,iCAAiC,EAAE,CAAC;YACtD,4CAA4C;YAC5C,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,wFAAwF;QACxF,OAAO,CAAC,EAAE;YACN,kDAAkD;YAClD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;YACxB,2DAA2D;YAC3D,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;KACL,CAAC;CACL"}
|