@explorins/pers-shared 2.1.122 → 2.1.123
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/ai/ai-prompt-config.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js +22 -2
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.js +27 -0
- package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts +4 -1
- package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.js +27 -4
- package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js +9 -0
- package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.js +24 -0
- package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts +3 -0
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js +67 -5
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
- package/dist/cjs/shared-lib/enum/token-validity-type.enum.d.ts +14 -1
- package/dist/cjs/shared-lib/enum/token-validity-type.enum.d.ts.map +1 -1
- package/dist/cjs/shared-lib/enum/token-validity-type.enum.js +14 -0
- package/dist/cjs/shared-lib/enum/token-validity-type.enum.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.d.ts +96 -0
- package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.js +25 -0
- package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.js.map +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts +2 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.js +2 -0
- package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/token-transaction-input-data.interface.d.ts +13 -0
- package/dist/cjs/shared-lib/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.d.ts +48 -0
- package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.js +3 -0
- package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.js.map +1 -0
- package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts +17 -0
- package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts.map +1 -1
- package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js +26 -0
- package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js.map +1 -1
- package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.d.ts +13 -0
- package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.d.ts.map +1 -1
- package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.js +24 -0
- package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.js.map +1 -1
- package/dist/cjs/shared-patterns/functions/token-metadata.functions.d.ts +38 -2
- package/dist/cjs/shared-patterns/functions/token-metadata.functions.d.ts.map +1 -1
- package/dist/cjs/shared-patterns/functions/token-metadata.functions.js +71 -3
- package/dist/cjs/shared-patterns/functions/token-metadata.functions.js.map +1 -1
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js +22 -2
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.js +26 -0
- package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts +4 -1
- package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js +26 -4
- package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.js +8 -0
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.js +26 -3
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts +3 -0
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.js +66 -6
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
- package/dist/esm/shared-lib/enum/token-validity-type.enum.d.ts +14 -1
- package/dist/esm/shared-lib/enum/token-validity-type.enum.d.ts.map +1 -1
- package/dist/esm/shared-lib/enum/token-validity-type.enum.js +14 -0
- package/dist/esm/shared-lib/enum/token-validity-type.enum.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/dynamic-context.interface.d.ts +96 -0
- package/dist/esm/shared-lib/interfaces/dynamic-context.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/dynamic-context.interface.js +19 -0
- package/dist/esm/shared-lib/interfaces/dynamic-context.interface.js.map +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts +2 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.js +2 -0
- package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/token-transaction-input-data.interface.d.ts +13 -0
- package/dist/esm/shared-lib/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.d.ts +48 -0
- package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.js +2 -0
- package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.js.map +1 -0
- package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts +17 -0
- package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js +24 -0
- package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.d.ts +13 -0
- package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.d.ts.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.js +22 -0
- package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.js.map +1 -1
- package/dist/esm/shared-patterns/functions/token-metadata.functions.d.ts +38 -2
- package/dist/esm/shared-patterns/functions/token-metadata.functions.d.ts.map +1 -1
- package/dist/esm/shared-patterns/functions/token-metadata.functions.js +69 -2
- package/dist/esm/shared-patterns/functions/token-metadata.functions.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-prompt-config.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-prompt-config.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGtG,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEvG;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IAOtD,IAAI,EAAG,kBAAkB,CAAC;IAQ1B,GAAG,EAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-prompt-config.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-prompt-config.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGtG,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEvG;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IAOtD,IAAI,EAAG,kBAAkB,CAAC;IAQ1B,GAAG,EAAG,MAAM,CAAC;IA4Bb,MAAM,EAAG,MAAM,CAAC;CACjB"}
|
|
@@ -52,8 +52,28 @@ __decorate([
|
|
|
52
52
|
], AiPromptConfigDTO.prototype, "key", void 0);
|
|
53
53
|
__decorate([
|
|
54
54
|
(0, swagger_1.ApiProperty)({
|
|
55
|
-
description:
|
|
56
|
-
|
|
55
|
+
description: `The prompt to send to the AI model. Supports dynamic placeholders that are replaced with context values.
|
|
56
|
+
|
|
57
|
+
**Available Placeholders:**
|
|
58
|
+
- \`{{user.firstName}}\`, \`{{user.lastName}}\`, \`{{user.email}}\` - User profile data
|
|
59
|
+
- \`{{campaign.name}}\`, \`{{campaign.description}}\` - Campaign data
|
|
60
|
+
- \`{{tenant.projectName}}\`, \`{{tenant.projectDescription}}\` - Tenant/project data
|
|
61
|
+
- \`{{business.displayName}}\`, \`{{business.name}}\` - Business data
|
|
62
|
+
- \`{{triggerSource.name}}\`, \`{{triggerSource.type}}\` - Trigger source data
|
|
63
|
+
- \`{{redemption.name}}\`, \`{{redemption.description}}\` - Redemption data
|
|
64
|
+
- \`{{context.xxx}}\` - Dynamic context from TriggerSource.context or CampaignClaimRequest.context
|
|
65
|
+
- \`{{defaults.xxx}}\` - Default values from TokenMetadata.defaultPromptContext
|
|
66
|
+
|
|
67
|
+
**Context Sources:**
|
|
68
|
+
1. TriggerSource.context (admin QR/NFC) - Always applied
|
|
69
|
+
2. CampaignClaimRequest.context (user API) - Only if allowExternalContextOverwrite=true
|
|
70
|
+
3. TokenMetadata.defaultPromptContext - Always applied as fallback
|
|
71
|
+
|
|
72
|
+
**Examples:**
|
|
73
|
+
- \`"Generate a welcome message for {{user.firstName}} at {{business.displayName}}"\`
|
|
74
|
+
- \`"Create a VIP badge for guest {{context.guestName}} in room {{context.roomNumber}}"\`
|
|
75
|
+
- \`"Design a {{defaults.style}} reward image for {{campaign.name}}"\``,
|
|
76
|
+
example: 'Generate a unique reward name for {{user.firstName}} visiting {{business.displayName}}',
|
|
57
77
|
}),
|
|
58
78
|
(0, class_validator_1.IsString)(),
|
|
59
79
|
(0, class_validator_1.MaxLength)(2000),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-prompt-config.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-prompt-config.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA8D;AAC9D,8EAAoE;AAMpE;;;;;;;;;;;;GAYG;AACH,MAAa,iBAAiB;IAO5B,IAAI,CAAsB;IAQ1B,GAAG,CAAU;
|
|
1
|
+
{"version":3,"file":"ai-prompt-config.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-prompt-config.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA8D;AAC9D,8EAAoE;AAMpE;;;;;;;;;;;;GAYG;AACH,MAAa,iBAAiB;IAO5B,IAAI,CAAsB;IAQ1B,GAAG,CAAU;IA4Bb,MAAM,CAAU;CACjB;AA5CD,8CA4CC;AArCC;IANC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,wCAAe,CAAC,eAAe,EAAE,wCAAe,CAAC,gBAAgB,CAAC;QACzE,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,wCAAe,CAAC,eAAe;KACzC,CAAC;IACD,IAAA,wBAAM,EAAC,wCAAe,CAAC;;+CACE;AAQ1B;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,MAAM;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,EAAE,CAAC;;8CACD;AA4Bb;IA1BC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;uEAoBsD;QACnE,OAAO,EAAE,wFAAwF;KAClG,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;iDACA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UserDTOKeys } from "../user/user.dto";
|
|
2
|
+
import type { DynamicContext } from '../../interfaces/dynamic-context.interface';
|
|
2
3
|
/**
|
|
3
4
|
* Campaign Claim Request DTO
|
|
4
5
|
*
|
|
@@ -33,6 +34,7 @@ export declare class CampaignClaimRequestDTO {
|
|
|
33
34
|
externalReferenceId?: string;
|
|
34
35
|
triggerSourceId?: string;
|
|
35
36
|
metadata?: Record<string, any>;
|
|
37
|
+
context?: DynamicContext;
|
|
36
38
|
multiplier?: number;
|
|
37
39
|
latitude?: number;
|
|
38
40
|
longitude?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaignClaim.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaignClaim.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"campaignClaim.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaignClaim.request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,uBAAuB;IAOhC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAO7B,eAAe,CAAC,EAAE,MAAM,CAAC;IAOzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAyB/B,OAAO,CAAC,EAAE,cAAc,CAAC;IAOzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAOpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,cAAc,CAAC,EAAE,MAAM,CAAC;IASxB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7C;;OAEG;IAMH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IAMH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -47,6 +47,7 @@ class CampaignClaimRequestDTO {
|
|
|
47
47
|
externalReferenceId;
|
|
48
48
|
triggerSourceId;
|
|
49
49
|
metadata;
|
|
50
|
+
context;
|
|
50
51
|
multiplier;
|
|
51
52
|
latitude;
|
|
52
53
|
longitude;
|
|
@@ -86,6 +87,32 @@ __decorate([
|
|
|
86
87
|
(0, class_validator_1.IsObject)(),
|
|
87
88
|
__metadata("design:type", Object)
|
|
88
89
|
], CampaignClaimRequestDTO.prototype, "metadata", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
92
|
+
description: `**ERC721 only** - User-provided external context for template interpolation and AI prompts.
|
|
93
|
+
|
|
94
|
+
**SECURITY:** Only applied if TokenMetadata.allowExternalContextOverwrite is true (admin opt-in required). TriggerSource.context (admin-controlled QR/NFC data) is ALWAYS applied regardless.
|
|
95
|
+
|
|
96
|
+
**Template Interpolation:** Values become available as \`{{context.keyName}}\` placeholders in TokenMetadata name/description fields and AI prompts.
|
|
97
|
+
|
|
98
|
+
**Special validity keys:**
|
|
99
|
+
- \`validityDate\` - Base date for trigger-based validity
|
|
100
|
+
- \`validityEndDate\` - End date for date ranges (e.g., hotel checkout)
|
|
101
|
+
- \`validityDuration\` - Override duration in days/hours
|
|
102
|
+
|
|
103
|
+
**Custom keys:** Any arbitrary key becomes \`{{context.keyName}}\` placeholder.
|
|
104
|
+
|
|
105
|
+
**Example use cases:**
|
|
106
|
+
- Hotel: \`{ guestName: "John", roomNumber: "305", validityEndDate: "2026-04-20T11:00:00Z" }\`
|
|
107
|
+
- Event: \`{ ticketType: "VIP", seatNumber: "A12" }\`
|
|
108
|
+
- Retail: \`{ productName: "Gold Watch", purchaseAmount: 299.99 }\``,
|
|
109
|
+
type: 'object',
|
|
110
|
+
example: { guestName: 'John Doe', validityDate: '2026-04-15T14:00:00Z', validityEndDate: '2026-04-20T11:00:00Z' }
|
|
111
|
+
}),
|
|
112
|
+
(0, decorators_1.OptionalStrip)(),
|
|
113
|
+
(0, class_validator_1.IsObject)(),
|
|
114
|
+
__metadata("design:type", Object)
|
|
115
|
+
], CampaignClaimRequestDTO.prototype, "context", void 0);
|
|
89
116
|
__decorate([
|
|
90
117
|
(0, swagger_1.ApiPropertyOptional)({
|
|
91
118
|
description: 'The campaign multiplier that will be applied to the reward. This determines the final reward amount (reward * multiplier). Default is 1.0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaignClaim.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaignClaim.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,qDAAuE;AAEvE,iDAAsE;
|
|
1
|
+
{"version":3,"file":"campaignClaim.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/campaignClaim.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,qDAAuE;AAEvE,iDAAsE;AAGtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,uBAAuB;IAOhC,mBAAmB,CAAU;IAO7B,eAAe,CAAU;IAOzB,QAAQ,CAAuB;IAyB/B,OAAO,CAAkB;IAOzB,UAAU,CAAU;IAOpB,QAAQ,CAAU;IAOlB,SAAS,CAAU;IAOnB,cAAc,CAAU;IASxB,QAAQ,CAAqC;IAE7C;;OAEG;IAMH,UAAU,CAAU;IAEpB;;OAEG;IAMH,UAAU,CAAU;CACvB;AAxGD,0DAwGC;AAjGG;IALC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,4KAA4K;KAC5L,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;oEACkB;AAO7B;IALC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,6KAA6K;KAC7L,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,wBAAM,GAAE;;gEACgB;AAOzB;IALC,IAAA,6BAAmB,EAAC;QACb,WAAW,EAAE,kDAAkD;KAClE,CAAC;IACL,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;yDACoB;AAyB/B;IAvBC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE;;;;;;;;;;;;;;;;oEAgB+C;QAC5D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,sBAAsB,EAAE;KACpH,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;wDACc;AAOzB;IALC,IAAA,6BAAmB,EAAC;QACb,WAAW,EAAE,2IAA2I;KAC3J,CAAC;IACL,IAAA,gCAAmB,GAAE;IACrB,IAAA,0BAAQ,GAAE;;2DACS;AAOpB;IALC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,2PAA2P;KAC3Q,CAAC;IACD,IAAA,gCAAmB,GAAE;IACrB,IAAA,0BAAQ,GAAE;;yDACO;AAOlB;IALC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,6PAA6P;KAC7Q,CAAC;IACD,IAAA,gCAAmB,GAAE;IACrB,IAAA,0BAAQ,GAAE;;0DACQ;AAOnB;IALC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,wIAAwI;KACxJ,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;+DACa;AASxB;IAPC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,+XAA+X;QAC5Y,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;KACxF,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;yDACkC;AAU7C;IALC,IAAA,6BAAmB,EAAC;QACb,WAAW,EAAE,wJAAwJ;KAC5K,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,wBAAM,GAAE;;2DACW;AAUpB;IALC,IAAA,6BAAmB,EAAC;QACb,WAAW,EAAE,8WAA8W;KAC9X,CAAC;IACL,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;2DACS"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { TriggerSourceType } from "../../enum/campaign/trigger-source-type.enum";
|
|
2
|
+
import type { TriggerSourceMetadata } from '../../interfaces/trigger-source-metadata.interface';
|
|
3
|
+
import type { DynamicContext } from '../../interfaces/dynamic-context.interface';
|
|
2
4
|
export declare class TriggerSourceCreateRequestDTO {
|
|
3
5
|
type: TriggerSourceType;
|
|
4
6
|
name: string;
|
|
5
7
|
description?: string | null;
|
|
6
|
-
metadata?:
|
|
8
|
+
metadata?: TriggerSourceMetadata;
|
|
9
|
+
context?: DynamicContext;
|
|
7
10
|
maxUsage?: number | null;
|
|
8
11
|
businessId?: string | null;
|
|
9
12
|
coordsLatitude?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-source.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/trigger-source.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger-source.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/trigger-source.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAoD,MAAM,8CAA8C,CAAC;AAEnI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAajF,qBAAa,6BAA6B;IA0BtC,IAAI,EAAE,iBAAiB,CAAgC;IAQvD,IAAI,EAAG,MAAM,CAAC;IAUd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAU5B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAuBjC,OAAO,CAAC,EAAE,cAAc,CAAC;IAWzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAUzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAW3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAW/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAGD,qBAAa,gBAAiB,SAAQ,6BAA6B;IAE/D,EAAE,EAAE,MAAM,CAAM;IAchB,QAAQ,EAAE,OAAO,CAAQ;IASzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO/B,WAAW,EAAE,OAAO,CAAS;IAM7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAM9B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;CACjC"}
|
|
@@ -29,6 +29,7 @@ class TriggerSourceCreateRequestDTO {
|
|
|
29
29
|
name;
|
|
30
30
|
description;
|
|
31
31
|
metadata;
|
|
32
|
+
context;
|
|
32
33
|
maxUsage;
|
|
33
34
|
businessId;
|
|
34
35
|
coordsLatitude;
|
|
@@ -85,16 +86,38 @@ __decorate([
|
|
|
85
86
|
__decorate([
|
|
86
87
|
(0, swagger_1.ApiPropertyOptional)({
|
|
87
88
|
type: 'object',
|
|
88
|
-
description: 'Type-specific configuration
|
|
89
|
-
example: { tokenConfig: {
|
|
90
|
-
tokenId: '1'
|
|
91
|
-
} },
|
|
89
|
+
description: 'Type-specific configuration: `tokenConfig` (override token ID). See TriggerSourceMetadata interface.',
|
|
90
|
+
example: { tokenConfig: { tokenId: '1' } },
|
|
92
91
|
additionalProperties: true
|
|
93
92
|
}),
|
|
94
93
|
(0, decorators_1.OptionalStrip)(),
|
|
95
94
|
(0, class_validator_1.IsObject)(),
|
|
96
95
|
__metadata("design:type", Object)
|
|
97
96
|
], TriggerSourceCreateRequestDTO.prototype, "metadata", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
99
|
+
type: 'object',
|
|
100
|
+
description: `**ERC721 only** - Admin-controlled dynamic context for template interpolation and AI prompts. This data is ALWAYS applied (not subject to allowExternalContextOverwrite).
|
|
101
|
+
|
|
102
|
+
**Template Interpolation:** Values become available as \`{{context.keyName}}\` placeholders in TokenMetadata name/description fields and AI prompts.
|
|
103
|
+
|
|
104
|
+
**Special validity keys:**
|
|
105
|
+
- \`validityDate\` - Base date for trigger-based validity
|
|
106
|
+
- \`validityEndDate\` - End date for date ranges (e.g., hotel checkout)
|
|
107
|
+
- \`validityDuration\` - Override duration in days/hours
|
|
108
|
+
|
|
109
|
+
**Custom keys:** Any arbitrary key becomes \`{{context.keyName}}\` placeholder.
|
|
110
|
+
|
|
111
|
+
**Use cases:**
|
|
112
|
+
- QR at hotel room: \`{ location: "Room 305", roomType: "Suite" }\`
|
|
113
|
+
- NFC at event entrance: \`{ eventName: "Summer Festival", zone: "VIP" }\`
|
|
114
|
+
- Kiosk-specific: \`{ deviceId: "kiosk-001", branch: "Downtown" }\``,
|
|
115
|
+
example: { location: 'Main Lobby', deviceId: 'kiosk-001', validityDate: '2026-04-20T11:00:00Z' }
|
|
116
|
+
}),
|
|
117
|
+
(0, decorators_1.OptionalStrip)(),
|
|
118
|
+
(0, class_validator_1.IsObject)(),
|
|
119
|
+
__metadata("design:type", Object)
|
|
120
|
+
], TriggerSourceCreateRequestDTO.prototype, "context", void 0);
|
|
98
121
|
__decorate([
|
|
99
122
|
(0, swagger_1.ApiPropertyOptional)({
|
|
100
123
|
type: Number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-source.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/trigger-source.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAA2F;AAC3F,2FAAmI;AACnI,iDAAyF;
|
|
1
|
+
{"version":3,"file":"trigger-source.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/campaign/trigger-source.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { RedemptionTypeDTO } from "./redemptionType.dto";
|
|
|
2
2
|
import { TokenUnitDTO } from "../token/token-unit.dto";
|
|
3
3
|
import { UserStatusTypeDTO } from "../user-status-type.dto";
|
|
4
4
|
import { ItemSupply } from "../item-supply.dto";
|
|
5
|
+
import type { DynamicContext } from "../../interfaces/dynamic-context.interface";
|
|
5
6
|
export declare class RedemptionDTO {
|
|
6
7
|
id: string;
|
|
7
8
|
description: string | null;
|
|
@@ -18,5 +19,6 @@ export declare class RedemptionDTO {
|
|
|
18
19
|
minUserStatusType: UserStatusTypeDTO | null;
|
|
19
20
|
countryCodeRestrictions: string[] | null;
|
|
20
21
|
tags: string[];
|
|
22
|
+
context?: DynamicContext;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=redemption.dto.d.ts.map
|
|
@@ -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;
|
|
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;AAGjF,qBAAa,aAAa;IAKtB,EAAE,EAAE,MAAM,CAAM;IAOhB,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;IAK9B,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;CAC5B"}
|
|
@@ -31,6 +31,7 @@ class RedemptionDTO {
|
|
|
31
31
|
minUserStatusType = null;
|
|
32
32
|
countryCodeRestrictions = null;
|
|
33
33
|
tags = [];
|
|
34
|
+
context;
|
|
34
35
|
}
|
|
35
36
|
exports.RedemptionDTO = RedemptionDTO;
|
|
36
37
|
__decorate([
|
|
@@ -145,4 +146,12 @@ __decorate([
|
|
|
145
146
|
}),
|
|
146
147
|
__metadata("design:type", Array)
|
|
147
148
|
], RedemptionDTO.prototype, "tags", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
151
|
+
description: '**ERC721 only** - Admin-defined dynamic context for AI prompts and trigger-based validity. Always applied to tokens minted from this redemption. Special keys: `validityDate`, `validityEndDate`, `validityDuration` for token expiry.',
|
|
152
|
+
type: 'object',
|
|
153
|
+
example: { eventName: 'Summer Sale', validityDuration: 30 }
|
|
154
|
+
}),
|
|
155
|
+
__metadata("design:type", Object)
|
|
156
|
+
], RedemptionDTO.prototype, "context", void 0);
|
|
148
157
|
//# sourceMappingURL=redemption.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemption.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,6DAAyD;AACzD,4DAAuD;AACvD,kEAA4D;AAC5D,wDAAgD;
|
|
1
|
+
{"version":3,"file":"redemption.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemption.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DynamicContext } from '../../interfaces/dynamic-context.interface';
|
|
1
2
|
export declare class RedemptionCreateRequestDTO {
|
|
2
3
|
creditTokenAmount?: number;
|
|
3
4
|
description?: string | null;
|
|
@@ -11,5 +12,6 @@ export declare class RedemptionCreateRequestDTO {
|
|
|
11
12
|
maxPerUser?: number | null;
|
|
12
13
|
countryCodeRestrictions?: string[] | null;
|
|
13
14
|
tags?: string[];
|
|
15
|
+
context?: DynamicContext;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=redemptionCreate.request.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionCreate.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionCreate.request.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redemptionCreate.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionCreate.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,qBAAa,0BAA0B;IAQnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAQ5B,IAAI,CAAC,EAAE,MAAM,CAAC;IASd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IASzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IASxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IASjC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IASpC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAS/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAStB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAa3B,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAU1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAShB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC5B"}
|
|
@@ -26,6 +26,7 @@ class RedemptionCreateRequestDTO {
|
|
|
26
26
|
maxPerUser;
|
|
27
27
|
countryCodeRestrictions;
|
|
28
28
|
tags;
|
|
29
|
+
context;
|
|
29
30
|
}
|
|
30
31
|
exports.RedemptionCreateRequestDTO = RedemptionCreateRequestDTO;
|
|
31
32
|
__decorate([
|
|
@@ -151,4 +152,14 @@ __decorate([
|
|
|
151
152
|
(0, class_validator_1.IsString)({ each: true }),
|
|
152
153
|
__metadata("design:type", Array)
|
|
153
154
|
], RedemptionCreateRequestDTO.prototype, "tags", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
157
|
+
description: '**ERC721 only** - Admin-defined dynamic context for AI prompts and trigger-based validity. Always applied to tokens minted from this redemption. Special keys: `validityDate`, `validityEndDate`, `validityDuration` for token expiry.',
|
|
158
|
+
type: 'object',
|
|
159
|
+
example: { eventName: 'Summer Sale', validityDuration: 30 }
|
|
160
|
+
}),
|
|
161
|
+
(0, decorators_1.OptionalStrip)(),
|
|
162
|
+
(0, class_validator_1.IsObject)(),
|
|
163
|
+
__metadata("design:type", Object)
|
|
164
|
+
], RedemptionCreateRequestDTO.prototype, "context", void 0);
|
|
154
165
|
//# sourceMappingURL=redemptionCreate.request.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionCreate.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionCreate.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"redemptionCreate.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionCreate.request.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DynamicContext } from '../../interfaces/dynamic-context.interface';
|
|
1
2
|
export declare class RedemptionRedeemRequestDTO {
|
|
2
3
|
/**
|
|
3
4
|
* The ID of the redemption to redeem
|
|
@@ -8,5 +9,6 @@ export declare class RedemptionRedeemRequestDTO {
|
|
|
8
9
|
*/
|
|
9
10
|
redemptionId: string;
|
|
10
11
|
businessId?: string | null;
|
|
12
|
+
context?: DynamicContext;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=redemptionRedeem.request.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionRedeem.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionRedeem.request.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redemptionRedeem.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionRedeem.request.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,qBAAa,0BAA0B;IACnC;;;;;;OAMG;IAUH,YAAY,EAAG,MAAM,CAAC;IAStB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAsB3B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC5B"}
|
|
@@ -26,6 +26,7 @@ class RedemptionRedeemRequestDTO {
|
|
|
26
26
|
}) */
|
|
27
27
|
redemptionId;
|
|
28
28
|
businessId;
|
|
29
|
+
context;
|
|
29
30
|
}
|
|
30
31
|
exports.RedemptionRedeemRequestDTO = RedemptionRedeemRequestDTO;
|
|
31
32
|
__decorate([
|
|
@@ -47,4 +48,27 @@ __decorate([
|
|
|
47
48
|
(0, class_validator_1.IsUUID)(),
|
|
48
49
|
__metadata("design:type", Object)
|
|
49
50
|
], RedemptionRedeemRequestDTO.prototype, "businessId", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
53
|
+
description: `**ERC721 only** - User-provided external context for template interpolation and AI prompts.
|
|
54
|
+
|
|
55
|
+
**SECURITY:** Only applied if TokenMetadata.allowExternalContextOverwrite is true (admin opt-in required). Redemption.context (admin-controlled) is ALWAYS applied regardless.
|
|
56
|
+
|
|
57
|
+
**Template Interpolation:** Values become available as \`{{context.keyName}}\` placeholders in TokenMetadata name/description fields and AI prompts.
|
|
58
|
+
|
|
59
|
+
**Special validity keys:**
|
|
60
|
+
- \`validityDate\` - Base date for trigger-based validity
|
|
61
|
+
- \`validityEndDate\` - End date for date ranges (e.g., hotel checkout)
|
|
62
|
+
- \`validityDuration\` - Override duration in days/hours
|
|
63
|
+
|
|
64
|
+
**Custom keys:** Any arbitrary key becomes \`{{context.keyName}}\` placeholder.
|
|
65
|
+
|
|
66
|
+
**Example:** \`{ guestName: "John", roomNumber: "305", validityEndDate: "2026-04-20T11:00:00Z" }\``,
|
|
67
|
+
type: 'object',
|
|
68
|
+
example: { guestName: 'John Doe', validityDate: '2026-04-15T14:00:00Z', validityEndDate: '2026-04-20T11:00:00Z' }
|
|
69
|
+
}),
|
|
70
|
+
(0, decorators_1.OptionalStrip)(),
|
|
71
|
+
(0, class_validator_1.IsObject)(),
|
|
72
|
+
__metadata("design:type", Object)
|
|
73
|
+
], RedemptionRedeemRequestDTO.prototype, "context", void 0);
|
|
50
74
|
//# sourceMappingURL=redemptionRedeem.request.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemptionRedeem.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionRedeem.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"redemptionRedeem.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/redemption/redemptionRedeem.request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAA+D;AAC/D,iDAAkE;AAGlE,MAAa,0BAA0B;IACnC;;;;;;OAMG;IACH;;SAEK;IAOL,YAAY,CAAU;IAStB,UAAU,CAAiB;IAsB3B,OAAO,CAAkB;CAC5B;AAjDD,gEAiDC;AAhCG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;gEACa;AAStB;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,+DAA+D;QAC5E,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACjB,CAAC;IACD,IAAA,4BAAe,GAAE;IACjB,IAAA,wBAAM,GAAE;;8DACkB;AAsB3B;IApBC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE;;;;;;;;;;;;;mGAa8E;QAC3F,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,sBAAsB,EAAE;KACpH,CAAC;IACD,IAAA,0BAAa,GAAE;IACf,IAAA,0BAAQ,GAAE;;2DACc"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type TokenValidityType } from '../../enum/token-validity-type.enum';
|
|
2
2
|
import { AiPromptConfigDTO } from '../ai/ai-prompt-config.dto';
|
|
3
|
+
import type { DynamicContext } from '../../interfaces/dynamic-context.interface';
|
|
3
4
|
/**
|
|
4
5
|
* Token Metadata - NFT Template/Blueprint
|
|
5
6
|
*
|
|
@@ -36,6 +37,8 @@ export declare class TokenMetadataCreateRequestDTO {
|
|
|
36
37
|
previewUrl?: string;
|
|
37
38
|
tags?: string[];
|
|
38
39
|
aiPromptConfigs?: AiPromptConfigDTO[];
|
|
40
|
+
allowExternalContextOverwrite?: boolean;
|
|
41
|
+
defaultPromptContext?: DynamicContext;
|
|
39
42
|
businessIds?: string[];
|
|
40
43
|
}
|
|
41
44
|
export declare class TokenMetadataDTO extends TokenMetadataCreateRequestDTO {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-metadata.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/token/token-metadata.dto.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"token-metadata.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/token/token-metadata.dto.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,6BAA6B;IAOtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAmBrB,WAAW,CAAC,EAAE,MAAM,CAAA;IAmBpB,IAAI,CAAC,EAAE,MAAM,CAAA;IASb,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAQhC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAOzB,UAAU,CAAC,EAAE,IAAI,CAAA;IAOjB,YAAY,CAAC,EAAE,MAAM,CAAA;IAOrB,UAAU,CAAC,EAAE,MAAM,CAAA;IAOnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAO9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAoBhB,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAetC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAaxC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IAUtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAGD,qBAAa,gBAAiB,SAAQ,6BAA6B;IAK/D,EAAE,EAAE,MAAM,CAAK;IAKf,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAKhC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAK7B,cAAc,CAAC,EAAE,MAAM,CAAA;IAKvB,0BAA0B,EAAE,MAAM,CAAK;IAKvC,QAAQ,EAAE,OAAO,CAAS;IAO1B,IAAI,EAAE,MAAM,EAAE,CAAM;IAOpB,WAAW,EAAE,MAAM,EAAE,CAAM;CAC9B"}
|
|
@@ -52,6 +52,8 @@ class TokenMetadataCreateRequestDTO {
|
|
|
52
52
|
previewUrl;
|
|
53
53
|
tags;
|
|
54
54
|
aiPromptConfigs;
|
|
55
|
+
allowExternalContextOverwrite;
|
|
56
|
+
defaultPromptContext;
|
|
55
57
|
businessIds;
|
|
56
58
|
}
|
|
57
59
|
exports.TokenMetadataCreateRequestDTO = TokenMetadataCreateRequestDTO;
|
|
@@ -73,7 +75,19 @@ __decorate([
|
|
|
73
75
|
], TokenMetadataCreateRequestDTO.prototype, "externalUrl", void 0);
|
|
74
76
|
__decorate([
|
|
75
77
|
(0, swagger_1.ApiPropertyOptional)({
|
|
76
|
-
description:
|
|
78
|
+
description: `A human-readable description of the item. Markdown is supported.
|
|
79
|
+
|
|
80
|
+
**ERC721 Template Interpolation:** Supports \`{{placeholder}}\` syntax for dynamic personalization at mint time (without AI costs).
|
|
81
|
+
|
|
82
|
+
**Available placeholders:**
|
|
83
|
+
- \`{{user.firstName}}\`, \`{{user.lastName}}\` - User data
|
|
84
|
+
- \`{{campaign.name}}\`, \`{{business.displayName}}\` - Campaign/business
|
|
85
|
+
- \`{{context.xxx}}\` - Dynamic context values (TriggerSource.context or claim request)
|
|
86
|
+
- \`{{defaults.xxx}}\` - Default values from defaultPromptContext
|
|
87
|
+
|
|
88
|
+
**Example:** \`"Thank you {{user.firstName}} for visiting {{business.displayName}}! Your exclusive reward for {{context.eventName}}."\`
|
|
89
|
+
|
|
90
|
+
**Processing order:** Template interpolation runs first, then AI processing (if configured) can further enhance the result.`
|
|
77
91
|
}),
|
|
78
92
|
(0, decorators_1.OptionalStrip)(),
|
|
79
93
|
(0, class_validator_1.IsString)(),
|
|
@@ -81,7 +95,19 @@ __decorate([
|
|
|
81
95
|
], TokenMetadataCreateRequestDTO.prototype, "description", void 0);
|
|
82
96
|
__decorate([
|
|
83
97
|
(0, swagger_1.ApiPropertyOptional)({
|
|
84
|
-
description:
|
|
98
|
+
description: `Name of the item.
|
|
99
|
+
|
|
100
|
+
**ERC721 Template Interpolation:** Supports \`{{placeholder}}\` syntax for dynamic personalization at mint time (without AI costs).
|
|
101
|
+
|
|
102
|
+
**Available placeholders:**
|
|
103
|
+
- \`{{user.firstName}}\`, \`{{user.lastName}}\` - User data
|
|
104
|
+
- \`{{campaign.name}}\`, \`{{business.displayName}}\` - Campaign/business
|
|
105
|
+
- \`{{context.xxx}}\` - Dynamic context values (TriggerSource.context or claim request)
|
|
106
|
+
- \`{{defaults.xxx}}\` - Default values from defaultPromptContext
|
|
107
|
+
|
|
108
|
+
**Example:** \`"Welcome {{context.guestName}} - VIP Pass"\` or \`"{{user.firstName}}'s {{campaign.name}} Reward"\`
|
|
109
|
+
|
|
110
|
+
**Processing order:** Template interpolation runs first, then AI processing (if configured) can further enhance the result.`
|
|
85
111
|
}),
|
|
86
112
|
(0, decorators_1.OptionalStrip)(),
|
|
87
113
|
(0, class_validator_1.IsString)(),
|
|
@@ -159,11 +185,17 @@ __decorate([
|
|
|
159
185
|
], TokenMetadataCreateRequestDTO.prototype, "tags", void 0);
|
|
160
186
|
__decorate([
|
|
161
187
|
(0, swagger_1.ApiPropertyOptional)({
|
|
162
|
-
description:
|
|
188
|
+
description: `**ERC721 only** - AI prompt configurations for dynamic content generation at mint time.
|
|
189
|
+
|
|
190
|
+
AI processing runs AFTER template interpolation, so prompts can reference already-interpolated values.
|
|
191
|
+
|
|
192
|
+
Results are mapped by key to override static fields (name, description, imageUrl). Ignored for ERC1155 tokens.
|
|
193
|
+
|
|
194
|
+
**Note:** For simple personalization without AI costs, use \`{{placeholder}}\` syntax directly in name/description fields instead.`,
|
|
163
195
|
type: [ai_prompt_config_dto_1.AiPromptConfigDTO],
|
|
164
196
|
example: [
|
|
165
|
-
{ type: 'TEXT_GENERATION', key: 'name', prompt: 'Generate a unique reward name for {{user.
|
|
166
|
-
{ type: 'IMAGE_GENERATION', key: 'imageUrl', prompt: 'A
|
|
197
|
+
{ type: 'TEXT_GENERATION', key: 'name', prompt: 'Generate a unique reward name for {{user.firstName}} at {{business.displayName}}' },
|
|
198
|
+
{ type: 'IMAGE_GENERATION', key: 'imageUrl', prompt: 'A {{defaults.style}} trophy badge for {{context.eventName}}' }
|
|
167
199
|
]
|
|
168
200
|
}),
|
|
169
201
|
(0, decorators_1.OptionalStrip)(),
|
|
@@ -172,6 +204,36 @@ __decorate([
|
|
|
172
204
|
(0, class_transformer_1.Type)(() => ai_prompt_config_dto_1.AiPromptConfigDTO),
|
|
173
205
|
__metadata("design:type", Array)
|
|
174
206
|
], TokenMetadataCreateRequestDTO.prototype, "aiPromptConfigs", void 0);
|
|
207
|
+
__decorate([
|
|
208
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
209
|
+
description: `**ERC721 only** - Allow USER-PROVIDED external context from claim/redeem requests to be used in template interpolation and AI prompts.
|
|
210
|
+
|
|
211
|
+
**Security model:**
|
|
212
|
+
- \`false\` (default): Only admin-controlled context (TriggerSource.context, Redemption.context, defaultPromptContext) is available
|
|
213
|
+
- \`true\`: User-provided context from API requests is also merged and available as \`{{context.xxx}}\`
|
|
214
|
+
|
|
215
|
+
**Note:** Admin-controlled context (QR/NFC data) is ALWAYS applied regardless of this flag.`,
|
|
216
|
+
type: Boolean,
|
|
217
|
+
default: false,
|
|
218
|
+
example: true
|
|
219
|
+
}),
|
|
220
|
+
(0, decorators_1.OptionalStrip)(),
|
|
221
|
+
__metadata("design:type", Boolean)
|
|
222
|
+
], TokenMetadataCreateRequestDTO.prototype, "allowExternalContextOverwrite", void 0);
|
|
223
|
+
__decorate([
|
|
224
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
225
|
+
description: `**ERC721 only** - Default context values for template interpolation and AI prompts. Available as \`{{defaults.xxx}}\` placeholders.
|
|
226
|
+
|
|
227
|
+
Always applied regardless of allowExternalContextOverwrite. Use for brand defaults, styling preferences, or fallback values.
|
|
228
|
+
|
|
229
|
+
**Example usage in name:** \`"{{defaults.brand}} - {{user.firstName}}'s Reward"\``,
|
|
230
|
+
type: 'object',
|
|
231
|
+
example: { brand: 'PERS Rewards', style: 'minimal', defaultLocation: 'Online' }
|
|
232
|
+
}),
|
|
233
|
+
(0, decorators_1.OptionalStrip)(),
|
|
234
|
+
(0, class_validator_1.IsObject)(),
|
|
235
|
+
__metadata("design:type", Object)
|
|
236
|
+
], TokenMetadataCreateRequestDTO.prototype, "defaultPromptContext", void 0);
|
|
175
237
|
__decorate([
|
|
176
238
|
(0, swagger_1.ApiPropertyOptional)({
|
|
177
239
|
description: 'Business IDs where this token can be redeemed/spent. If empty, token can be spent at any business in the tenant. Used to restrict token usage to specific participating businesses.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-metadata.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/token/token-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"token-metadata.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/token/token-metadata.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,21 @@
|
|
|
2
2
|
* Token Validity Type Enum
|
|
3
3
|
*
|
|
4
4
|
* Defines how token expiry is calculated:
|
|
5
|
+
*
|
|
6
|
+
* Static types (computed at issuance from template):
|
|
5
7
|
* - FIXED_DATE: Uses expiryDate directly as absolute expiration
|
|
6
8
|
* - DAYS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration days
|
|
7
9
|
* - HOURS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration hours
|
|
8
10
|
* - MONTHS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration months
|
|
9
11
|
* - END_OF_MONTH: Token expires at end of the month when issued
|
|
10
12
|
* - END_OF_YEAR: Token expires at end of the year when issued
|
|
13
|
+
*
|
|
14
|
+
* Trigger-based types (computed from runtime context):
|
|
15
|
+
* - TRIGGER_DATE: Uses date from context.validityDate (e.g., hotel check-out date)
|
|
16
|
+
* - TRIGGER_DATE_RANGE: Uses context.validityEndDate directly (for explicit start/end scenarios)
|
|
17
|
+
* - DAYS_FROM_TRIGGER: Computes expiry as context.validityDate + duration days
|
|
18
|
+
* Duration from context.validityDuration OR template.validityDuration
|
|
19
|
+
* - HOURS_FROM_TRIGGER: Same as above but hours
|
|
11
20
|
*/
|
|
12
21
|
export declare const TokenValidityTypes: {
|
|
13
22
|
readonly FIXED_DATE: "fixed_date";
|
|
@@ -16,7 +25,11 @@ export declare const TokenValidityTypes: {
|
|
|
16
25
|
readonly MONTHS_FROM_ISSUANCE: "months_from_issuance";
|
|
17
26
|
readonly END_OF_MONTH: "end_of_month";
|
|
18
27
|
readonly END_OF_YEAR: "end_of_year";
|
|
28
|
+
readonly TRIGGER_DATE: "trigger_date";
|
|
29
|
+
readonly TRIGGER_DATE_RANGE: "trigger_date_range";
|
|
30
|
+
readonly DAYS_FROM_TRIGGER: "days_from_trigger";
|
|
31
|
+
readonly HOURS_FROM_TRIGGER: "hours_from_trigger";
|
|
19
32
|
};
|
|
20
33
|
export type TokenValidityType = typeof TokenValidityTypes[keyof typeof TokenValidityTypes];
|
|
21
|
-
export declare const TOKEN_VALIDITY_TYPE_VALUES: ("fixed_date" | "days_from_issuance" | "hours_from_issuance" | "months_from_issuance" | "end_of_month" | "end_of_year")[];
|
|
34
|
+
export declare const TOKEN_VALIDITY_TYPE_VALUES: ("fixed_date" | "days_from_issuance" | "hours_from_issuance" | "months_from_issuance" | "end_of_month" | "end_of_year" | "trigger_date" | "trigger_date_range" | "days_from_trigger" | "hours_from_trigger")[];
|
|
22
35
|
//# sourceMappingURL=token-validity-type.enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-validity-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/token-validity-type.enum.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"token-validity-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/token-validity-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAYrB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE3F,eAAO,MAAM,0BAA0B,gNAAoC,CAAC"}
|