@fiado/type-kit 3.521.0 → 3.522.0

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.
Files changed (82) hide show
  1. package/_test_/unit/loanCredit/regulatoryNoticeDtos.test.ts +39 -0
  2. package/_test_/unit/mdm/dtos/mdmDeviceContract.test.ts +2 -1
  3. package/_test_/unit/messageMoments/MessageMomentCatalog.test.ts +111 -0
  4. package/_test_/unit/messagesConnector/SendMessageRequest.test.ts +33 -0
  5. package/_test_/unit/messagesConnector/TemplateMessageAuthor.test.ts +41 -0
  6. package/_test_/unit/notificationMessages/MomentTemplateContracts.test.ts +59 -0
  7. package/_test_/unit/notificationMessages/NotificationQueueMessageRequest.test.ts +21 -0
  8. package/_test_/unit/retailWizard/storeMixCategory.test.ts +22 -0
  9. package/bin/index.d.ts +1 -0
  10. package/bin/index.js +4 -3
  11. package/bin/loanCredit/constants/RegulatoryCampaign.d.ts +5 -0
  12. package/bin/loanCredit/constants/RegulatoryCampaign.js +11 -0
  13. package/bin/loanCredit/dtos/requests/BackofficeSendRegulatoryNoticeRequest.d.ts +9 -0
  14. package/bin/loanCredit/dtos/requests/BackofficeSendRegulatoryNoticeRequest.js +38 -0
  15. package/bin/loanCredit/dtos/responses/RegulatoryNoticeCampaignPage.d.ts +13 -0
  16. package/bin/loanCredit/dtos/responses/RegulatoryNoticeCampaignPage.js +2 -0
  17. package/bin/loanCredit/index.d.ts +3 -0
  18. package/bin/loanCredit/index.js +3 -0
  19. package/bin/mdm/enums/MdmNoticeTypeEnum.d.ts +2 -0
  20. package/bin/mdm/enums/MdmNoticeTypeEnum.js +2 -0
  21. package/bin/messageMoments/constants/MessageMomentCatalog.d.ts +18 -0
  22. package/bin/messageMoments/constants/MessageMomentCatalog.js +69 -0
  23. package/bin/messageMoments/constants/MessageMomentVariables.d.ts +11 -0
  24. package/bin/messageMoments/constants/MessageMomentVariables.js +40 -0
  25. package/bin/messageMoments/constants/TemplatePlaceholder.d.ts +3 -0
  26. package/bin/messageMoments/constants/TemplatePlaceholder.js +6 -0
  27. package/bin/messageMoments/enums/MessageMomentBlockEnum.d.ts +11 -0
  28. package/bin/messageMoments/enums/MessageMomentBlockEnum.js +15 -0
  29. package/bin/messageMoments/enums/MessageMomentEnum.d.ts +42 -0
  30. package/bin/messageMoments/enums/MessageMomentEnum.js +46 -0
  31. package/bin/messageMoments/index.d.ts +5 -0
  32. package/bin/messageMoments/index.js +21 -0
  33. package/bin/messagesConnector/dtos/SendMessageRequest.d.ts +1 -0
  34. package/bin/messagesConnector/dtos/SendMessageRequest.js +7 -0
  35. package/bin/messagesConnector/dtos/TemplateMessageCreateRequest.d.ts +2 -0
  36. package/bin/messagesConnector/dtos/TemplateMessageCreateRequest.js +6 -0
  37. package/bin/messagesConnector/dtos/TemplateMessageUpdateRequest.d.ts +2 -0
  38. package/bin/messagesConnector/dtos/TemplateMessageUpdateRequest.js +6 -0
  39. package/bin/notificationMessages/constants/MomentTemplateLimits.d.ts +4 -0
  40. package/bin/notificationMessages/constants/MomentTemplateLimits.js +7 -0
  41. package/bin/notificationMessages/dtos/MomentTemplateListResponse.d.ts +5 -0
  42. package/bin/notificationMessages/dtos/MomentTemplateListResponse.js +23 -0
  43. package/bin/notificationMessages/dtos/MomentTemplateResponse.d.ts +15 -0
  44. package/bin/notificationMessages/dtos/MomentTemplateResponse.js +54 -0
  45. package/bin/notificationMessages/dtos/MomentTemplateUpsertRequest.d.ts +6 -0
  46. package/bin/notificationMessages/dtos/MomentTemplateUpsertRequest.js +39 -0
  47. package/bin/notificationMessages/dtos/NotificationQueueMessageRequest.d.ts +2 -0
  48. package/bin/notificationMessages/enums/NotificationTemplateOriginEnum.d.ts +4 -0
  49. package/bin/notificationMessages/enums/NotificationTemplateOriginEnum.js +8 -0
  50. package/bin/notificationMessages/index.d.ts +5 -0
  51. package/bin/notificationMessages/index.js +5 -0
  52. package/bin/retailWizard/dtos/responses/BackofficeStoreDetailResponse.d.ts +3 -1
  53. package/bin/retailWizard/enums/StoreMixCategoryEnum.d.ts +9 -0
  54. package/bin/retailWizard/enums/StoreMixCategoryEnum.js +13 -0
  55. package/bin/retailWizard/index.d.ts +1 -0
  56. package/bin/retailWizard/index.js +1 -0
  57. package/package.json +1 -1
  58. package/src/index.ts +1 -0
  59. package/src/loanCredit/constants/RegulatoryCampaign.ts +10 -0
  60. package/src/loanCredit/dtos/requests/BackofficeSendRegulatoryNoticeRequest.ts +24 -0
  61. package/src/loanCredit/dtos/responses/RegulatoryNoticeCampaignPage.ts +13 -0
  62. package/src/loanCredit/index.ts +3 -0
  63. package/src/mdm/enums/MdmNoticeTypeEnum.ts +2 -0
  64. package/src/messageMoments/constants/MessageMomentCatalog.ts +91 -0
  65. package/src/messageMoments/constants/MessageMomentVariables.ts +42 -0
  66. package/src/messageMoments/constants/TemplatePlaceholder.ts +3 -0
  67. package/src/messageMoments/enums/MessageMomentBlockEnum.ts +11 -0
  68. package/src/messageMoments/enums/MessageMomentEnum.ts +50 -0
  69. package/src/messageMoments/index.ts +5 -0
  70. package/src/messagesConnector/dtos/SendMessageRequest.ts +2 -0
  71. package/src/messagesConnector/dtos/TemplateMessageCreateRequest.ts +6 -0
  72. package/src/messagesConnector/dtos/TemplateMessageUpdateRequest.ts +6 -0
  73. package/src/notificationMessages/constants/MomentTemplateLimits.ts +5 -0
  74. package/src/notificationMessages/dtos/MomentTemplateListResponse.ts +9 -0
  75. package/src/notificationMessages/dtos/MomentTemplateResponse.ts +34 -0
  76. package/src/notificationMessages/dtos/MomentTemplateUpsertRequest.ts +24 -0
  77. package/src/notificationMessages/dtos/NotificationQueueMessageRequest.ts +3 -1
  78. package/src/notificationMessages/enums/NotificationTemplateOriginEnum.ts +4 -0
  79. package/src/notificationMessages/index.ts +6 -2
  80. package/src/retailWizard/dtos/responses/BackofficeStoreDetailResponse.ts +3 -1
  81. package/src/retailWizard/enums/StoreMixCategoryEnum.ts +9 -0
  82. package/src/retailWizard/index.ts +1 -0
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MOMENT_SPECIFIC_VARIABLES = exports.RESTRUCTURE_MOMENT_VARIABLES = exports.OTP_MOMENT_VARIABLES = exports.CREDIT_MOMENT_CONDITIONAL_VARIABLES = exports.CREDIT_MOMENT_ALWAYS_VARIABLES = void 0;
4
+ const MessageMomentEnum_1 = require("../enums/MessageMomentEnum");
5
+ /** Variables del crédito que el emisor manda siempre con valor. */
6
+ exports.CREDIT_MOMENT_ALWAYS_VARIABLES = [
7
+ 'cliente_nombre',
8
+ 'credito_id',
9
+ 'monto_credito',
10
+ 'monto_enganche',
11
+ 'cuota_total',
12
+ 'saldo_actual',
13
+ ];
14
+ /** Variables que dependen del dato: viajan siempre, con `""` cuando no aplican. */
15
+ exports.CREDIT_MOMENT_CONDITIONAL_VARIABLES = [
16
+ 'tienda',
17
+ 'equipo',
18
+ 'cat',
19
+ 'fecha_primer_venc',
20
+ 'fecha_liquidacion',
21
+ 'dias_atraso',
22
+ 'cuota_n',
23
+ 'monto',
24
+ 'saldo_pendiente',
25
+ 'fecha_venc',
26
+ 'proxima_venc',
27
+ 'folio',
28
+ 'forma_pago',
29
+ ];
30
+ /** El OTP lo arma messages-business: llena `code` y su alias posicional `var1`. */
31
+ exports.OTP_MOMENT_VARIABLES = ['code', 'var1'];
32
+ /** Lo que el plan nuevo de una reestructura le dice al cliente. */
33
+ exports.RESTRUCTURE_MOMENT_VARIABLES = ['plazo_nuevo', 'cuota_nueva', 'saldo_nuevo'];
34
+ /** Variables que solo emite su momento, siempre con valor. */
35
+ exports.MOMENT_SPECIFIC_VARIABLES = {
36
+ [MessageMomentEnum_1.MessageMomentEnum.F1_RESTRUCTURE_PROPOSED]: exports.RESTRUCTURE_MOMENT_VARIABLES,
37
+ [MessageMomentEnum_1.MessageMomentEnum.F1_RESTRUCTURE_APPROVED]: exports.RESTRUCTURE_MOMENT_VARIABLES,
38
+ [MessageMomentEnum_1.MessageMomentEnum.PROFILE_CHANGE_CONFIRMED]: ['campo_cambiado'],
39
+ [MessageMomentEnum_1.MessageMomentEnum.MONTHLY_STATEMENT]: ['fecha_corte'],
40
+ };
@@ -0,0 +1,3 @@
1
+ /** Un placeholder doble `{{monto}}` o simple `{monto}`, igual que `applyVariables` de messages-business. La doble va primero.
2
+ * Es global y compartido: úsalo solo con `matchAll`/`replace`; para `.test()` o `.exec()` crea `new RegExp(TEMPLATE_PLACEHOLDER_PATTERN.source)`. */
3
+ export declare const TEMPLATE_PLACEHOLDER_PATTERN: RegExp;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEMPLATE_PLACEHOLDER_PATTERN = void 0;
4
+ /** Un placeholder doble `{{monto}}` o simple `{monto}`, igual que `applyVariables` de messages-business. La doble va primero.
5
+ * Es global y compartido: úsalo solo con `matchAll`/`replace`; para `.test()` o `.exec()` crea `new RegExp(TEMPLATE_PLACEHOLDER_PATTERN.source)`. */
6
+ exports.TEMPLATE_PLACEHOLDER_PATTERN = /\{\{(\w+)\}\}|\{(\w+)\}/g;
@@ -0,0 +1,11 @@
1
+ /** Bloques del árbol de la pantalla; el mismo vocabulario que la key `pm-xxx.block` de la ficha. */
2
+ export declare enum MessageMomentBlockEnum {
3
+ ORIGINATION = "origination",
4
+ REMINDERS = "reminders",
5
+ PAYMENTS = "payments",
6
+ COLLECTIONS = "collections",
7
+ DEVICE_LOCK = "deviceLock",
8
+ EXCEPTIONS = "exceptions",
9
+ CLOSURE = "closure",
10
+ SERVICE = "service"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageMomentBlockEnum = void 0;
4
+ /** Bloques del árbol de la pantalla; el mismo vocabulario que la key `pm-xxx.block` de la ficha. */
5
+ var MessageMomentBlockEnum;
6
+ (function (MessageMomentBlockEnum) {
7
+ MessageMomentBlockEnum["ORIGINATION"] = "origination";
8
+ MessageMomentBlockEnum["REMINDERS"] = "reminders";
9
+ MessageMomentBlockEnum["PAYMENTS"] = "payments";
10
+ MessageMomentBlockEnum["COLLECTIONS"] = "collections";
11
+ MessageMomentBlockEnum["DEVICE_LOCK"] = "deviceLock";
12
+ MessageMomentBlockEnum["EXCEPTIONS"] = "exceptions";
13
+ MessageMomentBlockEnum["CLOSURE"] = "closure";
14
+ MessageMomentBlockEnum["SERVICE"] = "service";
15
+ })(MessageMomentBlockEnum || (exports.MessageMomentBlockEnum = MessageMomentBlockEnum = {}));
@@ -0,0 +1,42 @@
1
+ /** Los momentos de mensaje que el emisor sabe entregar. Es el messageType de la plantilla. */
2
+ export declare enum MessageMomentEnum {
3
+ OTP_CODE = "OTP_CODE",
4
+ ISSUED_CARD_SMS = "ISSUED_CARD_SMS",
5
+ APPLICATION_APPROVED = "APPLICATION_APPROVED",
6
+ APPLICATION_REJECTED = "APPLICATION_REJECTED",
7
+ DOWN_PAYMENT_RECEIVED = "DOWN_PAYMENT_RECEIVED",
8
+ CONTRACT_SIGNED = "CONTRACT_SIGNED",
9
+ MDM_ACTIVATED = "MDM_ACTIVATED",
10
+ REMINDER_T_MINUS_3 = "REMINDER_T_MINUS_3",
11
+ REMINDER_T_MINUS_2 = "REMINDER_T_MINUS_2",
12
+ REMINDER_T_MINUS_1 = "REMINDER_T_MINUS_1",
13
+ PAYMENT_APPLIED = "PAYMENT_APPLIED",
14
+ PAYMENT_PARTIAL = "PAYMENT_PARTIAL",
15
+ PAYMENT_REJECTED = "PAYMENT_REJECTED",
16
+ PAYMENT_EARLY = "PAYMENT_EARLY",
17
+ COLLECTION_T_PLUS_1 = "COLLECTION_T_PLUS_1",
18
+ COLLECTION_T_PLUS_3 = "COLLECTION_T_PLUS_3",
19
+ COLLECTION_T_PLUS_5 = "COLLECTION_T_PLUS_5",
20
+ COLLECTION_T_PLUS_15 = "COLLECTION_T_PLUS_15",
21
+ COLLECTION_T_PLUS_60_BUREAU = "COLLECTION_T_PLUS_60_BUREAU",
22
+ MDM_LOCK_APPLIED = "MDM_LOCK_APPLIED",
23
+ MDM_UNLOCKED = "MDM_UNLOCKED",
24
+ F1_RESTRUCTURE_PROPOSED = "F1_RESTRUCTURE_PROPOSED",
25
+ F1_RESTRUCTURE_APPROVED = "F1_RESTRUCTURE_APPROVED",
26
+ F2_CANCELLATION_PROCESSED = "F2_CANCELLATION_PROCESSED",
27
+ F3_DISCOUNT_APPLIED = "F3_DISCOUNT_APPLIED",
28
+ F4_CORRECTION_APPLIED = "F4_CORRECTION_APPLIED",
29
+ F5_FRAUD_CONFIRMED = "F5_FRAUD_CONFIRMED",
30
+ PAYMENT_PROMISE_REGISTERED = "PAYMENT_PROMISE_REGISTERED",
31
+ PAYMENT_PROMISE_BROKEN = "PAYMENT_PROMISE_BROKEN",
32
+ LAST_INSTALLMENT = "LAST_INSTALLMENT",
33
+ SETTLEMENT_COMPLETED = "SETTLEMENT_COMPLETED",
34
+ SETTLEMENT_BUREAU_NOTICE = "SETTLEMENT_BUREAU_NOTICE",
35
+ REENTRY_INVITATION = "REENTRY_INVITATION",
36
+ APP_WELCOME = "APP_WELCOME",
37
+ SECURITY_ALERT = "SECURITY_ALERT",
38
+ PROFILE_CHANGE_CONFIRMED = "PROFILE_CHANGE_CONFIRMED",
39
+ MONTHLY_STATEMENT = "MONTHLY_STATEMENT",
40
+ CAT_TERMS_NOTICE = "CAT_TERMS_NOTICE",
41
+ PRIVACY_ARCO_NOTICE = "PRIVACY_ARCO_NOTICE"
42
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageMomentEnum = void 0;
4
+ /** Los momentos de mensaje que el emisor sabe entregar. Es el messageType de la plantilla. */
5
+ var MessageMomentEnum;
6
+ (function (MessageMomentEnum) {
7
+ MessageMomentEnum["OTP_CODE"] = "OTP_CODE";
8
+ MessageMomentEnum["ISSUED_CARD_SMS"] = "ISSUED_CARD_SMS";
9
+ MessageMomentEnum["APPLICATION_APPROVED"] = "APPLICATION_APPROVED";
10
+ MessageMomentEnum["APPLICATION_REJECTED"] = "APPLICATION_REJECTED";
11
+ MessageMomentEnum["DOWN_PAYMENT_RECEIVED"] = "DOWN_PAYMENT_RECEIVED";
12
+ MessageMomentEnum["CONTRACT_SIGNED"] = "CONTRACT_SIGNED";
13
+ MessageMomentEnum["MDM_ACTIVATED"] = "MDM_ACTIVATED";
14
+ MessageMomentEnum["REMINDER_T_MINUS_3"] = "REMINDER_T_MINUS_3";
15
+ MessageMomentEnum["REMINDER_T_MINUS_2"] = "REMINDER_T_MINUS_2";
16
+ MessageMomentEnum["REMINDER_T_MINUS_1"] = "REMINDER_T_MINUS_1";
17
+ MessageMomentEnum["PAYMENT_APPLIED"] = "PAYMENT_APPLIED";
18
+ MessageMomentEnum["PAYMENT_PARTIAL"] = "PAYMENT_PARTIAL";
19
+ MessageMomentEnum["PAYMENT_REJECTED"] = "PAYMENT_REJECTED";
20
+ MessageMomentEnum["PAYMENT_EARLY"] = "PAYMENT_EARLY";
21
+ MessageMomentEnum["COLLECTION_T_PLUS_1"] = "COLLECTION_T_PLUS_1";
22
+ MessageMomentEnum["COLLECTION_T_PLUS_3"] = "COLLECTION_T_PLUS_3";
23
+ MessageMomentEnum["COLLECTION_T_PLUS_5"] = "COLLECTION_T_PLUS_5";
24
+ MessageMomentEnum["COLLECTION_T_PLUS_15"] = "COLLECTION_T_PLUS_15";
25
+ MessageMomentEnum["COLLECTION_T_PLUS_60_BUREAU"] = "COLLECTION_T_PLUS_60_BUREAU";
26
+ MessageMomentEnum["MDM_LOCK_APPLIED"] = "MDM_LOCK_APPLIED";
27
+ MessageMomentEnum["MDM_UNLOCKED"] = "MDM_UNLOCKED";
28
+ MessageMomentEnum["F1_RESTRUCTURE_PROPOSED"] = "F1_RESTRUCTURE_PROPOSED";
29
+ MessageMomentEnum["F1_RESTRUCTURE_APPROVED"] = "F1_RESTRUCTURE_APPROVED";
30
+ MessageMomentEnum["F2_CANCELLATION_PROCESSED"] = "F2_CANCELLATION_PROCESSED";
31
+ MessageMomentEnum["F3_DISCOUNT_APPLIED"] = "F3_DISCOUNT_APPLIED";
32
+ MessageMomentEnum["F4_CORRECTION_APPLIED"] = "F4_CORRECTION_APPLIED";
33
+ MessageMomentEnum["F5_FRAUD_CONFIRMED"] = "F5_FRAUD_CONFIRMED";
34
+ MessageMomentEnum["PAYMENT_PROMISE_REGISTERED"] = "PAYMENT_PROMISE_REGISTERED";
35
+ MessageMomentEnum["PAYMENT_PROMISE_BROKEN"] = "PAYMENT_PROMISE_BROKEN";
36
+ MessageMomentEnum["LAST_INSTALLMENT"] = "LAST_INSTALLMENT";
37
+ MessageMomentEnum["SETTLEMENT_COMPLETED"] = "SETTLEMENT_COMPLETED";
38
+ MessageMomentEnum["SETTLEMENT_BUREAU_NOTICE"] = "SETTLEMENT_BUREAU_NOTICE";
39
+ MessageMomentEnum["REENTRY_INVITATION"] = "REENTRY_INVITATION";
40
+ MessageMomentEnum["APP_WELCOME"] = "APP_WELCOME";
41
+ MessageMomentEnum["SECURITY_ALERT"] = "SECURITY_ALERT";
42
+ MessageMomentEnum["PROFILE_CHANGE_CONFIRMED"] = "PROFILE_CHANGE_CONFIRMED";
43
+ MessageMomentEnum["MONTHLY_STATEMENT"] = "MONTHLY_STATEMENT";
44
+ MessageMomentEnum["CAT_TERMS_NOTICE"] = "CAT_TERMS_NOTICE";
45
+ MessageMomentEnum["PRIVACY_ARCO_NOTICE"] = "PRIVACY_ARCO_NOTICE";
46
+ })(MessageMomentEnum || (exports.MessageMomentEnum = MessageMomentEnum = {}));
@@ -0,0 +1,5 @@
1
+ export * from './enums/MessageMomentEnum';
2
+ export * from './enums/MessageMomentBlockEnum';
3
+ export * from './constants/MessageMomentVariables';
4
+ export * from './constants/MessageMomentCatalog';
5
+ export * from './constants/TemplatePlaceholder';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums/MessageMomentEnum"), exports);
18
+ __exportStar(require("./enums/MessageMomentBlockEnum"), exports);
19
+ __exportStar(require("./constants/MessageMomentVariables"), exports);
20
+ __exportStar(require("./constants/MessageMomentCatalog"), exports);
21
+ __exportStar(require("./constants/TemplatePlaceholder"), exports);
@@ -19,4 +19,5 @@ export declare class SendMessageRequest {
19
19
  referenceMessageId?: string;
20
20
  transactionNumber?: string;
21
21
  purpose?: OtpMessagePurposeEnum;
22
+ tenantId?: string;
22
23
  }
@@ -124,3 +124,10 @@ __decorate([
124
124
  (0, class_validator_1.IsEnum)(OtpMessagePurposeEnum_1.OtpMessagePurposeEnum),
125
125
  __metadata("design:type", String)
126
126
  ], SendMessageRequest.prototype, "purpose", void 0);
127
+ __decorate([
128
+ (0, class_transformer_1.Expose)(),
129
+ (0, class_validator_1.IsOptional)(),
130
+ (0, class_validator_1.IsString)(),
131
+ (0, class_validator_1.IsNotEmpty)(),
132
+ __metadata("design:type", String)
133
+ ], SendMessageRequest.prototype, "tenantId", void 0);
@@ -20,4 +20,6 @@ export declare class TemplateMessageCreateRequest {
20
20
  providerTemplateId?: string;
21
21
  /** Que variable va en cada slot posicional de Twilio. Solo en plantillas de WhatsApp. */
22
22
  slotVariables?: string[];
23
+ /** Quién hizo el cambio. Lo pone el proxy de loan-config con el operador autenticado. */
24
+ updatedBy?: string;
23
25
  }
@@ -90,3 +90,9 @@ __decorate([
90
90
  (0, class_validator_1.IsString)({ each: true }),
91
91
  __metadata("design:type", Array)
92
92
  ], TemplateMessageCreateRequest.prototype, "slotVariables", void 0);
93
+ __decorate([
94
+ (0, class_transformer_1.Expose)(),
95
+ (0, class_validator_1.IsOptional)(),
96
+ (0, class_validator_1.IsString)(),
97
+ __metadata("design:type", String)
98
+ ], TemplateMessageCreateRequest.prototype, "updatedBy", void 0);
@@ -17,4 +17,6 @@ export declare class TemplateMessageUpdateRequest {
17
17
  providerTemplateId?: string;
18
18
  /** Que variable va en cada slot posicional de Twilio. Solo en plantillas de WhatsApp. */
19
19
  slotVariables?: string[];
20
+ /** Quién hizo el cambio. Lo pone el proxy de loan-config con el operador autenticado. */
21
+ updatedBy?: string;
20
22
  }
@@ -67,3 +67,9 @@ __decorate([
67
67
  (0, class_validator_1.IsString)({ each: true }),
68
68
  __metadata("design:type", Array)
69
69
  ], TemplateMessageUpdateRequest.prototype, "slotVariables", void 0);
70
+ __decorate([
71
+ (0, class_transformer_1.Expose)(),
72
+ (0, class_validator_1.IsOptional)(),
73
+ (0, class_validator_1.IsString)(),
74
+ __metadata("design:type", String)
75
+ ], TemplateMessageUpdateRequest.prototype, "updatedBy", void 0);
@@ -0,0 +1,4 @@
1
+ /** Tope de momentos por lectura en lote: el de BatchGetItem de DynamoDB. */
2
+ export declare const MOMENT_TEMPLATE_LIST_MAX = 100;
3
+ /** Forma de un messageType de momento: mayúsculas, dígitos y guion bajo. */
4
+ export declare const MOMENT_MESSAGE_TYPE_PATTERN: RegExp;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MOMENT_MESSAGE_TYPE_PATTERN = exports.MOMENT_TEMPLATE_LIST_MAX = void 0;
4
+ /** Tope de momentos por lectura en lote: el de BatchGetItem de DynamoDB. */
5
+ exports.MOMENT_TEMPLATE_LIST_MAX = 100;
6
+ /** Forma de un messageType de momento: mayúsculas, dígitos y guion bajo. */
7
+ exports.MOMENT_MESSAGE_TYPE_PATTERN = /^[A-Z0-9_]+$/;
@@ -0,0 +1,5 @@
1
+ import { MomentTemplateResponse } from './MomentTemplateResponse';
2
+ /** Respuesta del listado en lote: solo vienen las plantillas que existen. */
3
+ export declare class MomentTemplateListResponse {
4
+ items: MomentTemplateResponse[];
5
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MomentTemplateListResponse = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const MomentTemplateResponse_1 = require("./MomentTemplateResponse");
15
+ /** Respuesta del listado en lote: solo vienen las plantillas que existen. */
16
+ class MomentTemplateListResponse {
17
+ }
18
+ exports.MomentTemplateListResponse = MomentTemplateListResponse;
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ (0, class_transformer_1.Type)(() => MomentTemplateResponse_1.MomentTemplateResponse),
22
+ __metadata("design:type", Array)
23
+ ], MomentTemplateListResponse.prototype, "items", void 0);
@@ -0,0 +1,15 @@
1
+ import { NotificationTemplateOriginEnum } from '../enums/NotificationTemplateOriginEnum';
2
+ /** Una plantilla push de momento tal como la devuelve notification-messages-business. */
3
+ export declare class MomentTemplateResponse {
4
+ messageType: string;
5
+ /** Id de la fila: `ES_<messageType>`. */
6
+ templateId: string;
7
+ title: string;
8
+ body: string;
9
+ templateVariables: string[];
10
+ /** Ausente cuando la fila existe pero es del wallet. */
11
+ origin?: NotificationTemplateOriginEnum;
12
+ updatedAt?: number;
13
+ createdBy?: string;
14
+ updatedBy?: string;
15
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MomentTemplateResponse = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const NotificationTemplateOriginEnum_1 = require("../enums/NotificationTemplateOriginEnum");
15
+ /** Una plantilla push de momento tal como la devuelve notification-messages-business. */
16
+ class MomentTemplateResponse {
17
+ }
18
+ exports.MomentTemplateResponse = MomentTemplateResponse;
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ __metadata("design:type", String)
22
+ ], MomentTemplateResponse.prototype, "messageType", void 0);
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ __metadata("design:type", String)
26
+ ], MomentTemplateResponse.prototype, "templateId", void 0);
27
+ __decorate([
28
+ (0, class_transformer_1.Expose)(),
29
+ __metadata("design:type", String)
30
+ ], MomentTemplateResponse.prototype, "title", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ __metadata("design:type", String)
34
+ ], MomentTemplateResponse.prototype, "body", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ __metadata("design:type", Array)
38
+ ], MomentTemplateResponse.prototype, "templateVariables", void 0);
39
+ __decorate([
40
+ (0, class_transformer_1.Expose)(),
41
+ __metadata("design:type", String)
42
+ ], MomentTemplateResponse.prototype, "origin", void 0);
43
+ __decorate([
44
+ (0, class_transformer_1.Expose)(),
45
+ __metadata("design:type", Number)
46
+ ], MomentTemplateResponse.prototype, "updatedAt", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ __metadata("design:type", String)
50
+ ], MomentTemplateResponse.prototype, "createdBy", void 0);
51
+ __decorate([
52
+ (0, class_transformer_1.Expose)(),
53
+ __metadata("design:type", String)
54
+ ], MomentTemplateResponse.prototype, "updatedBy", void 0);
@@ -0,0 +1,6 @@
1
+ /** Body de PUT /private/moment-templates/{messageType}: el texto de la push y quién lo escribió. */
2
+ export declare class MomentTemplateUpsertRequest {
3
+ title: string;
4
+ body: string;
5
+ updatedBy: string;
6
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MomentTemplateUpsertRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const NOT_BLANK = /\S/;
16
+ /** Body de PUT /private/moment-templates/{messageType}: el texto de la push y quién lo escribió. */
17
+ class MomentTemplateUpsertRequest {
18
+ }
19
+ exports.MomentTemplateUpsertRequest = MomentTemplateUpsertRequest;
20
+ __decorate([
21
+ (0, class_transformer_1.Expose)(),
22
+ (0, class_validator_1.IsString)(),
23
+ (0, class_validator_1.IsNotEmpty)(),
24
+ (0, class_validator_1.Matches)(NOT_BLANK),
25
+ __metadata("design:type", String)
26
+ ], MomentTemplateUpsertRequest.prototype, "title", void 0);
27
+ __decorate([
28
+ (0, class_transformer_1.Expose)(),
29
+ (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.IsNotEmpty)(),
31
+ (0, class_validator_1.Matches)(NOT_BLANK),
32
+ __metadata("design:type", String)
33
+ ], MomentTemplateUpsertRequest.prototype, "body", void 0);
34
+ __decorate([
35
+ (0, class_transformer_1.Expose)(),
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ __metadata("design:type", String)
39
+ ], MomentTemplateUpsertRequest.prototype, "updatedBy", void 0);
@@ -4,4 +4,6 @@ export declare class NotificationQueueMessageRequest {
4
4
  broadcast?: boolean;
5
5
  destinations: QueueMessageDestination[];
6
6
  data?: any;
7
+ /** Llave de idempotencia del productor; con ella el consumidor no repite la push por destino. */
8
+ eventId?: string;
7
9
  }
@@ -0,0 +1,4 @@
1
+ /** Quién es dueño de una fila de NotificationTemplates_GT. Sin origen, la fila es del wallet. */
2
+ export declare enum NotificationTemplateOriginEnum {
3
+ MESSAGING_MOMENT = "MESSAGING_MOMENT"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotificationTemplateOriginEnum = void 0;
4
+ /** Quién es dueño de una fila de NotificationTemplates_GT. Sin origen, la fila es del wallet. */
5
+ var NotificationTemplateOriginEnum;
6
+ (function (NotificationTemplateOriginEnum) {
7
+ NotificationTemplateOriginEnum["MESSAGING_MOMENT"] = "MESSAGING_MOMENT";
8
+ })(NotificationTemplateOriginEnum || (exports.NotificationTemplateOriginEnum = NotificationTemplateOriginEnum = {}));
@@ -2,5 +2,10 @@ export * from './dtos/NotificationQueueMessageRequest';
2
2
  export * from './dtos/QueueMessageDestination';
3
3
  export * from './dtos/QueueMessageVariableValues';
4
4
  export * from './dtos/NotificationTemplate';
5
+ export * from './dtos/MomentTemplateUpsertRequest';
6
+ export * from './dtos/MomentTemplateResponse';
7
+ export * from './dtos/MomentTemplateListResponse';
8
+ export * from './constants/MomentTemplateLimits';
5
9
  export * from "./enums/NotificationId";
6
10
  export * from "./enums/NotificationType";
11
+ export * from './enums/NotificationTemplateOriginEnum';
@@ -18,5 +18,10 @@ __exportStar(require("./dtos/NotificationQueueMessageRequest"), exports);
18
18
  __exportStar(require("./dtos/QueueMessageDestination"), exports);
19
19
  __exportStar(require("./dtos/QueueMessageVariableValues"), exports);
20
20
  __exportStar(require("./dtos/NotificationTemplate"), exports);
21
+ __exportStar(require("./dtos/MomentTemplateUpsertRequest"), exports);
22
+ __exportStar(require("./dtos/MomentTemplateResponse"), exports);
23
+ __exportStar(require("./dtos/MomentTemplateListResponse"), exports);
24
+ __exportStar(require("./constants/MomentTemplateLimits"), exports);
21
25
  __exportStar(require("./enums/NotificationId"), exports);
22
26
  __exportStar(require("./enums/NotificationType"), exports);
27
+ __exportStar(require("./enums/NotificationTemplateOriginEnum"), exports);
@@ -1,4 +1,5 @@
1
1
  import type { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
2
+ import type { StoreMixCategoryEnum } from '../../enums/StoreMixCategoryEnum';
2
3
  /** Colocación de una semana de 7 días; ISO, ambos extremos incluidos. */
3
4
  export interface StoreWeeklyPlacement {
4
5
  from: string;
@@ -8,7 +9,8 @@ export interface StoreWeeklyPlacement {
8
9
  }
9
10
  /** Lo vendido de una categoría en la ventana. `category: null` = venta sin líneas de producto. */
10
11
  export interface StoreCategoryMixEntry {
11
- category: ProductCategoryEnum | null;
12
+ /** Acepta ProductCategoryEnum para no romper a quien ya lo asigna; SERVICE solo existe en StoreMixCategoryEnum. */
13
+ category: StoreMixCategoryEnum | ProductCategoryEnum | null;
12
14
  units: number;
13
15
  placedCents: number;
14
16
  }
@@ -0,0 +1,9 @@
1
+ /** Categoría del mix de una tienda: las de producto (mismos strings que ProductCategoryEnum) más SERVICE. */
2
+ export declare enum StoreMixCategoryEnum {
3
+ PHONE = "PHONE",
4
+ SIM = "SIM",
5
+ MODEM = "MODEM",
6
+ ACCESSORY = "ACCESSORY",
7
+ BUNDLE = "BUNDLE",
8
+ SERVICE = "SERVICE"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreMixCategoryEnum = void 0;
4
+ /** Categoría del mix de una tienda: las de producto (mismos strings que ProductCategoryEnum) más SERVICE. */
5
+ var StoreMixCategoryEnum;
6
+ (function (StoreMixCategoryEnum) {
7
+ StoreMixCategoryEnum["PHONE"] = "PHONE";
8
+ StoreMixCategoryEnum["SIM"] = "SIM";
9
+ StoreMixCategoryEnum["MODEM"] = "MODEM";
10
+ StoreMixCategoryEnum["ACCESSORY"] = "ACCESSORY";
11
+ StoreMixCategoryEnum["BUNDLE"] = "BUNDLE";
12
+ StoreMixCategoryEnum["SERVICE"] = "SERVICE";
13
+ })(StoreMixCategoryEnum || (exports.StoreMixCategoryEnum = StoreMixCategoryEnum = {}));
@@ -140,6 +140,7 @@ export * from './dtos/responses/BackofficeSellerTableResponse';
140
140
  export * from './dtos/responses/BackofficeCustomerTableResponse';
141
141
  export * from './enums/StoreKindEnum';
142
142
  export * from './dtos/responses/BackofficeStoreTableResponse';
143
+ export * from './enums/StoreMixCategoryEnum';
143
144
  export * from './dtos/responses/BackofficeStoreDetailResponse';
144
145
  export * from './events/SaleCompletedV1';
145
146
  export * from './events/SaleCancelledV1';
@@ -173,6 +173,7 @@ __exportStar(require("./dtos/responses/BackofficeSellerTableResponse"), exports)
173
173
  __exportStar(require("./dtos/responses/BackofficeCustomerTableResponse"), exports);
174
174
  __exportStar(require("./enums/StoreKindEnum"), exports);
175
175
  __exportStar(require("./dtos/responses/BackofficeStoreTableResponse"), exports);
176
+ __exportStar(require("./enums/StoreMixCategoryEnum"), exports);
176
177
  __exportStar(require("./dtos/responses/BackofficeStoreDetailResponse"), exports);
177
178
  // Contratos de eventos (PascalCase + sufijo V1)
178
179
  __exportStar(require("./events/SaleCompletedV1"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.521.0",
3
+ "version": "3.522.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export * as Identity from './provider';
22
22
  export * as Header from './header';
23
23
  export * as ServicePayment from './servicePayment';
24
24
  export * as NotificationMessages from './notificationMessages';
25
+ export * as MessageMoments from './messageMoments';
25
26
  export * as SessionActivity from './sessionActivity';
26
27
  export * as EventBridgeMessage from './eventBridge';
27
28
  export * as GenericMessage from './genericMessage';
@@ -0,0 +1,10 @@
1
+ import { MessageMomentEnum } from '../../messageMoments/enums/MessageMomentEnum';
2
+
3
+ /** Los avisos regulatorios que se mandan a toda la cartera viva desde el backoffice. */
4
+ export const REGULATORY_CAMPAIGN_MOMENTS: readonly MessageMomentEnum[] = [
5
+ MessageMomentEnum.CAT_TERMS_NOTICE,
6
+ MessageMomentEnum.PRIVACY_ARCO_NOTICE,
7
+ ];
8
+
9
+ /** Llave de la campaña: corta y sin separadores, porque viaja dentro de la referencia del aviso. */
10
+ export const REGULATORY_CAMPAIGN_KEY_PATTERN = /^[A-Za-z0-9-]{1,12}$/;
@@ -0,0 +1,24 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsIn, IsNotEmpty, IsOptional, IsString, Matches } from 'class-validator';
3
+ import { MessageMomentEnum } from '../../../messageMoments/enums/MessageMomentEnum';
4
+ import { REGULATORY_CAMPAIGN_KEY_PATTERN, REGULATORY_CAMPAIGN_MOMENTS } from '../../constants/RegulatoryCampaign';
5
+
6
+ /** Body de `POST /backoffice/regulatory-notices` (loan-credit-business): una página de la campaña. */
7
+ export class BackofficeSendRegulatoryNoticeRequest {
8
+ @Expose()
9
+ @IsIn(REGULATORY_CAMPAIGN_MOMENTS)
10
+ moment!: MessageMomentEnum;
11
+
12
+ /** La misma en todas las páginas: reintentar la campaña no duplica el aviso. */
13
+ @Expose()
14
+ @IsString()
15
+ @Matches(REGULATORY_CAMPAIGN_KEY_PATTERN)
16
+ campaignKey!: string;
17
+
18
+ /** Cursor de la página anterior; ausente en la primera. */
19
+ @Expose()
20
+ @IsOptional()
21
+ @IsString()
22
+ @IsNotEmpty()
23
+ nextToken?: string;
24
+ }
@@ -0,0 +1,13 @@
1
+ /** Lo que dejó una página de la campaña regulatoria. */
2
+ export interface RegulatoryNoticeCampaignPage {
3
+ /** Créditos vivos revisados en esta página. */
4
+ examined: number;
5
+ /** Avisos que salieron por algún canal. */
6
+ delivered: number;
7
+ /** Avisos que la puerta descartó, cada uno con su fila de evidencia. */
8
+ discarded: number;
9
+ /** Avisos que fallaron; también dejan fila FALLIDA. */
10
+ failed: number;
11
+ /** Cursor de la página siguiente; ausente cuando la campaña terminó. */
12
+ nextToken?: string;
13
+ }
@@ -155,6 +155,9 @@ export * from './dtos/responses/LoanRestructure';
155
155
  export * from './dtos/responses/LoanRestructureListResponse';
156
156
  export * from './dtos/responses/LoanRestructurePreviewInstallment';
157
157
  export * from './dtos/responses/LoanRestructurePreview';
158
+ export * from './constants/RegulatoryCampaign';
159
+ export * from './dtos/requests/BackofficeSendRegulatoryNoticeRequest';
160
+ export * from './dtos/responses/RegulatoryNoticeCampaignPage';
158
161
  export * from './dtos/responses/LoanOtpDispatch';
159
162
  export * from './dtos/responses/LoanPrepaymentQuote';
160
163
  export * from './dtos/responses/LoanPaymentReviewItem';
@@ -4,6 +4,8 @@
4
4
  * No es la cadencia completa de cobranza: los hitos de otros canales (tarde del día 0, días 90 y 180) no se pintan acá.
5
5
  */
6
6
  export enum MdmNoticeTypeEnum {
7
+ /** Tres días antes del vencimiento de la cuota. */
8
+ PRE_DUE_3_DAYS = "PRE_DUE_3_DAYS",
7
9
  /** Dos días antes del vencimiento de la cuota. */
8
10
  PRE_DUE_2_DAYS = "PRE_DUE_2_DAYS",
9
11
  /** Un día antes del vencimiento de la cuota. */