@fiado/type-kit 3.585.0 → 3.587.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.
- package/_test_/unit/collection/disburseRequest.test.ts +10 -0
- package/_test_/unit/collection/disbursementType.test.ts +7 -2
- package/_test_/unit/productCatalog/rewardEnums.test.ts +19 -0
- package/_test_/unit/retailIntegration/retailSystemEnums.test.ts +1 -1
- package/_test_/unit/rewards/enums.test.ts +1 -1
- package/_test_/unit/rewards/waitingLimit.test.ts +43 -0
- package/bin/collection/enums/DisbursementType.d.ts +3 -1
- package/bin/collection/enums/DisbursementType.js +2 -0
- package/bin/productCatalog/enums/ProductSubtypeEnum.d.ts +1 -0
- package/bin/productCatalog/enums/ProductSubtypeEnum.js +3 -0
- package/bin/productCatalog/enums/ProductTypeEnum.d.ts +3 -1
- package/bin/productCatalog/enums/ProductTypeEnum.js +2 -0
- package/bin/retailIntegration/enums/RetailEventRejectCodeEnum.d.ts +3 -1
- package/bin/retailIntegration/enums/RetailEventRejectCodeEnum.js +2 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantItemResponse.d.ts +9 -0
- package/bin/rewards/enums/GrantItemStatusEnum.d.ts +2 -0
- package/bin/rewards/enums/GrantItemStatusEnum.js +2 -0
- package/bin/rewards/enums/LimitWaitReasonEnum.d.ts +7 -0
- package/bin/rewards/enums/LimitWaitReasonEnum.js +11 -0
- package/bin/rewards/enums/RewardItemCodeEnum.d.ts +9 -0
- package/bin/rewards/enums/RewardItemCodeEnum.js +13 -0
- package/bin/rewards/index.d.ts +2 -0
- package/bin/rewards/index.js +2 -0
- package/package.json +1 -1
- package/src/collection/enums/DisbursementType.ts +2 -0
- package/src/productCatalog/enums/ProductSubtypeEnum.ts +4 -0
- package/src/productCatalog/enums/ProductTypeEnum.ts +3 -1
- package/src/retailIntegration/enums/RetailEventRejectCodeEnum.ts +2 -0
- package/src/rewards/dtos/backoffice/BackofficeGrantItemResponse.ts +9 -0
- package/src/rewards/enums/GrantItemStatusEnum.ts +2 -0
- package/src/rewards/enums/LimitWaitReasonEnum.ts +7 -0
- package/src/rewards/enums/RewardItemCodeEnum.ts +9 -0
- package/src/rewards/index.ts +2 -0
|
@@ -26,6 +26,16 @@ describe('DisburseRequest', () => {
|
|
|
26
26
|
expect(await invalidProperties(VALID)).toEqual([]);
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
+
it('acepta disbursementType MEX_REWARD', async () => {
|
|
30
|
+
expect(await invalidProperties({ ...VALID, disbursementType: 'MEX_REWARD' })).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('acepta una idempotencyKey de 80 caracteres (sin límite de largo)', async () => {
|
|
34
|
+
const key = ('RW-' + 'a'.repeat(32) + '-' + 'k'.repeat(28) + '-12').padEnd(80, 'x');
|
|
35
|
+
expect(key).toHaveLength(80);
|
|
36
|
+
expect(await invalidProperties({ ...VALID, disbursementType: 'MEX_REWARD', idempotencyKey: key })).toEqual([]);
|
|
37
|
+
});
|
|
38
|
+
|
|
29
39
|
it('reference es opcional', async () => {
|
|
30
40
|
const { reference: _omit, ...withoutReference } = VALID;
|
|
31
41
|
expect(await invalidProperties(withoutReference)).toEqual([]);
|
|
@@ -3,8 +3,12 @@ import { Collection } from '../../../src/index';
|
|
|
3
3
|
import { DisbursementType } from '../../../src/collection/index';
|
|
4
4
|
|
|
5
5
|
describe('DisbursementType', () => {
|
|
6
|
-
it('trae los productos de bono
|
|
7
|
-
expect(Object.values(DisbursementType)).toEqual(['MEX_BONUS', 'MEX_SELLER_COMMISSION']);
|
|
6
|
+
it('trae los productos de bono, comisión de vendedor y recompensa', () => {
|
|
7
|
+
expect(Object.values(DisbursementType)).toEqual(['MEX_BONUS', 'MEX_SELLER_COMMISSION', 'MEX_REWARD']);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it('MEX_REWARD vale MEX_REWARD', () => {
|
|
11
|
+
expect(DisbursementType.MEX_REWARD).toBe('MEX_REWARD');
|
|
8
12
|
});
|
|
9
13
|
|
|
10
14
|
it('cada clave es igual a su valor', () => {
|
|
@@ -16,5 +20,6 @@ describe('DisbursementType', () => {
|
|
|
16
20
|
it('sale por el index raíz', () => {
|
|
17
21
|
expect(Collection.DisbursementType.MEX_BONUS).toBe('MEX_BONUS');
|
|
18
22
|
expect(Collection.DisbursementType.MEX_SELLER_COMMISSION).toBe('MEX_SELLER_COMMISSION');
|
|
23
|
+
expect(Collection.DisbursementType.MEX_REWARD).toBe('MEX_REWARD');
|
|
19
24
|
});
|
|
20
25
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ProductSubtypeEnum } from '../../../src/productCatalog/enums/ProductSubtypeEnum';
|
|
2
|
+
import { ProductTypeEnum } from '../../../src/productCatalog/enums/ProductTypeEnum';
|
|
3
|
+
|
|
4
|
+
describe('enums de recompensas del catálogo de productos', () => {
|
|
5
|
+
it('ProductSubtypeEnum.REWARD_MX vale "REWARD_MX"', () => {
|
|
6
|
+
expect(ProductSubtypeEnum.REWARD_MX).toBe('REWARD_MX');
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it('ProductTypeEnum.REWARDS vale "REWARDS"', () => {
|
|
10
|
+
expect(ProductTypeEnum.REWARDS).toBe('REWARDS');
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('ningún otro miembro de ProductSubtypeEnum vale "REWARD_MX"', () => {
|
|
14
|
+
const colisiones = Object.entries(ProductSubtypeEnum).filter(
|
|
15
|
+
([key, value]) => key !== 'REWARD_MX' && value === 'REWARD_MX',
|
|
16
|
+
);
|
|
17
|
+
expect(colisiones).toEqual([]);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -47,7 +47,7 @@ describe('codes y movimientos de los eventos del retailer', () => {
|
|
|
47
47
|
expect(Object.values(RetailEventRejectCodeEnum).sort()).toEqual(
|
|
48
48
|
[
|
|
49
49
|
'EMAIL_ALREADY_IN_USE', 'EVENT_IN_FUTURE', 'FUTURE_PRICE_NOT_SUPPORTED', 'IDENTIFIER_CONFLICT', 'INVALID_IMEI',
|
|
50
|
-
'INVALID_PAYLOAD', 'RETAIL_USER_RETAILER_MISMATCH', 'SKU_NOT_STOCKABLE', 'SKU_OWNED_BY_BACKOFFICE',
|
|
50
|
+
'INVALID_PAYLOAD', 'RETAIL_USER_RETAILER_MISMATCH', 'ROLE_NOT_ALLOWED_FROM_INTEGRATION', 'SKU_NOT_STOCKABLE', 'SKU_OWNED_BY_BACKOFFICE',
|
|
51
51
|
'STORE_CODE_TAKEN', 'STORE_NOT_IN_RETAILER', 'STORE_RETAILER_MISMATCH', 'TRACKING_MODE_MISMATCH',
|
|
52
52
|
'UNSUPPORTED_CURRENCY',
|
|
53
53
|
].sort(),
|
|
@@ -29,7 +29,7 @@ describe('rewards: enums (los valores viajan por cola y por HTTP: no se renombra
|
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
it('GrantItemStatusEnum coincide con spec A 7.1', () => {
|
|
32
|
-
expect(Object.values(GrantItemStatusEnum).sort()).toEqual(['FAILED', 'GRANTED', 'PENDING', 'PROCESSING', 'SKIPPED']);
|
|
32
|
+
expect(Object.values(GrantItemStatusEnum).sort()).toEqual(['FAILED', 'GRANTED', 'PENDING', 'PROCESSING', 'SKIPPED', 'WAITING_LIMIT']);
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
it('ItemErrorCategoryEnum coincide con spec A §8', () => {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import {
|
|
3
|
+
BackofficeGrantItemResponse,
|
|
4
|
+
GrantItemStatusEnum,
|
|
5
|
+
LimitWaitReasonEnum,
|
|
6
|
+
RewardItemCodeEnum,
|
|
7
|
+
} from '../../../src/rewards/index';
|
|
8
|
+
import { Rewards } from '../../../src/index';
|
|
9
|
+
|
|
10
|
+
describe('espera por tope de nivel (WAITING_LIMIT)', () => {
|
|
11
|
+
it('GrantItemStatusEnum.WAITING_LIMIT vale WAITING_LIMIT', () => {
|
|
12
|
+
expect(GrantItemStatusEnum.WAITING_LIMIT).toBe('WAITING_LIMIT');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('LimitWaitReasonEnum tiene exactamente los processorCode del spec', () => {
|
|
16
|
+
expect(LimitWaitReasonEnum.MONTHLY_AMOUNT_EXCEEDED).toBe('ACCOUNT_LEVEL_MAX_MONTHLY_AMOUNT_EXCEEDED');
|
|
17
|
+
expect(LimitWaitReasonEnum.AVAILABLE_BALANCE_EXCEEDED).toBe('ACCOUNT_LEVEL_MAX_AVAILABLE_BALANCE_EXCEEDED');
|
|
18
|
+
expect(Object.values(LimitWaitReasonEnum)).toHaveLength(2);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('RewardItemCodeEnum contiene los tres códigos', () => {
|
|
22
|
+
expect(Object.values(RewardItemCodeEnum)).toEqual(
|
|
23
|
+
expect.arrayContaining(['AMOUNT_ABOVE_MAX', 'LIMIT_WAIT_EXPIRED', 'OUTCOME_UNKNOWN']),
|
|
24
|
+
);
|
|
25
|
+
expect(Object.values(RewardItemCodeEnum)).toHaveLength(3);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('BackofficeGrantItemResponse acepta los campos de espera', () => {
|
|
29
|
+
const parcial = {
|
|
30
|
+
waitReason: LimitWaitReasonEnum.MONTHLY_AMOUNT_EXCEEDED,
|
|
31
|
+
retryNotBefore: 1_790_000_000_000,
|
|
32
|
+
waitingSince: 1_789_000_000_000,
|
|
33
|
+
limitRejections: 2,
|
|
34
|
+
} satisfies Partial<BackofficeGrantItemResponse>;
|
|
35
|
+
expect(parcial.limitRejections).toBe(2);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('sale por el index raíz', () => {
|
|
39
|
+
expect(Rewards.GrantItemStatusEnum.WAITING_LIMIT).toBe('WAITING_LIMIT');
|
|
40
|
+
expect(Rewards.LimitWaitReasonEnum.AVAILABLE_BALANCE_EXCEEDED).toBeDefined();
|
|
41
|
+
expect(Rewards.RewardItemCodeEnum.OUTCOME_UNKNOWN).toBe('OUTCOME_UNKNOWN');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -6,5 +6,7 @@ export declare enum DisbursementType {
|
|
|
6
6
|
/** Bono. */
|
|
7
7
|
MEX_BONUS = "MEX_BONUS",
|
|
8
8
|
/** Comisión de vendedor. */
|
|
9
|
-
MEX_SELLER_COMMISSION = "MEX_SELLER_COMMISSION"
|
|
9
|
+
MEX_SELLER_COMMISSION = "MEX_SELLER_COMMISSION",
|
|
10
|
+
/** Abono de recompensas de `rewards-business`. */
|
|
11
|
+
MEX_REWARD = "MEX_REWARD"
|
|
10
12
|
}
|
|
@@ -11,4 +11,6 @@ var DisbursementType;
|
|
|
11
11
|
DisbursementType["MEX_BONUS"] = "MEX_BONUS";
|
|
12
12
|
/** Comisión de vendedor. */
|
|
13
13
|
DisbursementType["MEX_SELLER_COMMISSION"] = "MEX_SELLER_COMMISSION";
|
|
14
|
+
/** Abono de recompensas de `rewards-business`. */
|
|
15
|
+
DisbursementType["MEX_REWARD"] = "MEX_REWARD";
|
|
14
16
|
})(DisbursementType || (exports.DisbursementType = DisbursementType = {}));
|
|
@@ -60,6 +60,7 @@ export declare enum ProductSubtypeEnum {
|
|
|
60
60
|
SP_CASH_IN_CASH_IN_OXXO = "CASH_IN_OXXO",
|
|
61
61
|
SUREKEEP_BONUS_MX = "BONUS_MX",
|
|
62
62
|
SUREKEEP_SELLER_COMMISSION_MX = "SELLER_COMMISSION_MX",
|
|
63
|
+
REWARD_MX = "REWARD_MX",
|
|
63
64
|
STORE_PHONE = "PHONE",
|
|
64
65
|
REFUND_PCF_DICTAMEN_PROCEDE = "DICTAMEN_PROCEDE",
|
|
65
66
|
REFUND_PCF_AUTO_T2_SIN_2FA = "AUTO_T2_SIN_2FA",
|
|
@@ -77,6 +77,9 @@ var ProductSubtypeEnum;
|
|
|
77
77
|
ProductSubtypeEnum["SUREKEEP_BONUS_MX"] = "BONUS_MX";
|
|
78
78
|
// Comisión de vendedor de SureKeep abonada a la wallet.
|
|
79
79
|
ProductSubtypeEnum["SUREKEEP_SELLER_COMMISSION_MX"] = "SELLER_COMMISSION_MX";
|
|
80
|
+
//REWARDS
|
|
81
|
+
// Abono de recompensas de `rewards-business`.
|
|
82
|
+
ProductSubtypeEnum["REWARD_MX"] = "REWARD_MX";
|
|
80
83
|
//STORE
|
|
81
84
|
ProductSubtypeEnum["STORE_PHONE"] = "PHONE";
|
|
82
85
|
// REFUND_PCF
|
|
@@ -63,5 +63,7 @@ export declare enum ProductTypeEnum {
|
|
|
63
63
|
* Dispersión SPEI de liquidaciones de beneficios (money-transfer-connector).
|
|
64
64
|
* Producto del catálogo para la orden STP que sale con `source=BENEFITS_SETTLEMENT`.
|
|
65
65
|
*/
|
|
66
|
-
MONEY_TRANSFER_SA = "MONEY_TRANSFER_SA"
|
|
66
|
+
MONEY_TRANSFER_SA = "MONEY_TRANSFER_SA",
|
|
67
|
+
/** Abono de recompensas de `rewards-business`. */
|
|
68
|
+
REWARDS = "REWARDS"
|
|
67
69
|
}
|
|
@@ -68,4 +68,6 @@ var ProductTypeEnum;
|
|
|
68
68
|
* Producto del catálogo para la orden STP que sale con `source=BENEFITS_SETTLEMENT`.
|
|
69
69
|
*/
|
|
70
70
|
ProductTypeEnum["MONEY_TRANSFER_SA"] = "MONEY_TRANSFER_SA";
|
|
71
|
+
/** Abono de recompensas de `rewards-business`. */
|
|
72
|
+
ProductTypeEnum["REWARDS"] = "REWARDS";
|
|
71
73
|
})(ProductTypeEnum || (exports.ProductTypeEnum = ProductTypeEnum = {}));
|
|
@@ -14,5 +14,7 @@ export declare enum RetailEventRejectCodeEnum {
|
|
|
14
14
|
INVALID_IMEI = "INVALID_IMEI",
|
|
15
15
|
IDENTIFIER_CONFLICT = "IDENTIFIER_CONFLICT",
|
|
16
16
|
/** El evento trae una fecha posterior a la hora del servidor. */
|
|
17
|
-
EVENT_IN_FUTURE = "EVENT_IN_FUTURE"
|
|
17
|
+
EVENT_IN_FUTURE = "EVENT_IN_FUTURE",
|
|
18
|
+
/** El usuario trae un rol que solo se asigna desde el backoffice (RETAILER_ADMIN, COLLECTION_AGENT). */
|
|
19
|
+
ROLE_NOT_ALLOWED_FROM_INTEGRATION = "ROLE_NOT_ALLOWED_FROM_INTEGRATION"
|
|
18
20
|
}
|
|
@@ -19,4 +19,6 @@ var RetailEventRejectCodeEnum;
|
|
|
19
19
|
RetailEventRejectCodeEnum["IDENTIFIER_CONFLICT"] = "IDENTIFIER_CONFLICT";
|
|
20
20
|
/** El evento trae una fecha posterior a la hora del servidor. */
|
|
21
21
|
RetailEventRejectCodeEnum["EVENT_IN_FUTURE"] = "EVENT_IN_FUTURE";
|
|
22
|
+
/** El usuario trae un rol que solo se asigna desde el backoffice (RETAILER_ADMIN, COLLECTION_AGENT). */
|
|
23
|
+
RetailEventRejectCodeEnum["ROLE_NOT_ALLOWED_FROM_INTEGRATION"] = "ROLE_NOT_ALLOWED_FROM_INTEGRATION";
|
|
22
24
|
})(RetailEventRejectCodeEnum || (exports.RetailEventRejectCodeEnum = RetailEventRejectCodeEnum = {}));
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { GrantItemResponse } from '../responses/GrantItemResponse';
|
|
2
|
+
import { LimitWaitReasonEnum } from '../../enums/LimitWaitReasonEnum';
|
|
2
3
|
import { BackofficeGrantAttemptResponse } from './BackofficeGrantAttemptResponse';
|
|
3
4
|
export declare class BackofficeGrantItemResponse extends GrantItemResponse {
|
|
4
5
|
/** Nombre de la recompensa congelada en la entrega. */
|
|
5
6
|
name: string;
|
|
6
7
|
attempts: BackofficeGrantAttemptResponse[];
|
|
8
|
+
/** Motivo de la espera por tope; solo cuando el ítem está en `WAITING_LIMIT`. */
|
|
9
|
+
waitReason?: LimitWaitReasonEnum;
|
|
10
|
+
/** Epoch ms del próximo intento programado. */
|
|
11
|
+
retryNotBefore?: number;
|
|
12
|
+
/** Epoch ms en que el ítem entró en espera. */
|
|
13
|
+
waitingSince?: number;
|
|
14
|
+
/** Cantidad de rechazos por tope acumulados. */
|
|
15
|
+
limitRejections?: number;
|
|
7
16
|
}
|
|
@@ -5,6 +5,8 @@ export declare enum GrantItemStatusEnum {
|
|
|
5
5
|
* ocurrido y el adaptador debe reconciliar antes de reintentar.
|
|
6
6
|
*/
|
|
7
7
|
PROCESSING = "PROCESSING",
|
|
8
|
+
/** Espera por tope de nivel de la cuenta destino: no es `PROCESSING` ni `FAILED`; se reintenta solo. */
|
|
9
|
+
WAITING_LIMIT = "WAITING_LIMIT",
|
|
8
10
|
GRANTED = "GRANTED",
|
|
9
11
|
FAILED = "FAILED",
|
|
10
12
|
SKIPPED = "SKIPPED"
|
|
@@ -9,6 +9,8 @@ var GrantItemStatusEnum;
|
|
|
9
9
|
* ocurrido y el adaptador debe reconciliar antes de reintentar.
|
|
10
10
|
*/
|
|
11
11
|
GrantItemStatusEnum["PROCESSING"] = "PROCESSING";
|
|
12
|
+
/** Espera por tope de nivel de la cuenta destino: no es `PROCESSING` ni `FAILED`; se reintenta solo. */
|
|
13
|
+
GrantItemStatusEnum["WAITING_LIMIT"] = "WAITING_LIMIT";
|
|
12
14
|
GrantItemStatusEnum["GRANTED"] = "GRANTED";
|
|
13
15
|
GrantItemStatusEnum["FAILED"] = "FAILED";
|
|
14
16
|
GrantItemStatusEnum["SKIPPED"] = "SKIPPED";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Motivo por el que un ítem espera: `processorCode` del rechazo por tope de nivel de la cuenta destino. */
|
|
2
|
+
export declare enum LimitWaitReasonEnum {
|
|
3
|
+
/** Tope mensual de monto del nivel de la cuenta. */
|
|
4
|
+
MONTHLY_AMOUNT_EXCEEDED = "ACCOUNT_LEVEL_MAX_MONTHLY_AMOUNT_EXCEEDED",
|
|
5
|
+
/** Tope de saldo disponible del nivel de la cuenta. */
|
|
6
|
+
AVAILABLE_BALANCE_EXCEEDED = "ACCOUNT_LEVEL_MAX_AVAILABLE_BALANCE_EXCEEDED"
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LimitWaitReasonEnum = void 0;
|
|
4
|
+
/** Motivo por el que un ítem espera: `processorCode` del rechazo por tope de nivel de la cuenta destino. */
|
|
5
|
+
var LimitWaitReasonEnum;
|
|
6
|
+
(function (LimitWaitReasonEnum) {
|
|
7
|
+
/** Tope mensual de monto del nivel de la cuenta. */
|
|
8
|
+
LimitWaitReasonEnum["MONTHLY_AMOUNT_EXCEEDED"] = "ACCOUNT_LEVEL_MAX_MONTHLY_AMOUNT_EXCEEDED";
|
|
9
|
+
/** Tope de saldo disponible del nivel de la cuenta. */
|
|
10
|
+
LimitWaitReasonEnum["AVAILABLE_BALANCE_EXCEEDED"] = "ACCOUNT_LEVEL_MAX_AVAILABLE_BALANCE_EXCEEDED";
|
|
11
|
+
})(LimitWaitReasonEnum || (exports.LimitWaitReasonEnum = LimitWaitReasonEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Códigos de resultado de un ítem de entrega que no vienen del proveedor. */
|
|
2
|
+
export declare enum RewardItemCodeEnum {
|
|
3
|
+
/** El monto del ítem supera el máximo permitido. */
|
|
4
|
+
AMOUNT_ABOVE_MAX = "AMOUNT_ABOVE_MAX",
|
|
5
|
+
/** Venció la espera por tope (30 días desde `waitingSince`). */
|
|
6
|
+
LIMIT_WAIT_EXPIRED = "LIMIT_WAIT_EXPIRED",
|
|
7
|
+
/** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
|
|
8
|
+
OUTCOME_UNKNOWN = "OUTCOME_UNKNOWN"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RewardItemCodeEnum = void 0;
|
|
4
|
+
/** Códigos de resultado de un ítem de entrega que no vienen del proveedor. */
|
|
5
|
+
var RewardItemCodeEnum;
|
|
6
|
+
(function (RewardItemCodeEnum) {
|
|
7
|
+
/** El monto del ítem supera el máximo permitido. */
|
|
8
|
+
RewardItemCodeEnum["AMOUNT_ABOVE_MAX"] = "AMOUNT_ABOVE_MAX";
|
|
9
|
+
/** Venció la espera por tope (30 días desde `waitingSince`). */
|
|
10
|
+
RewardItemCodeEnum["LIMIT_WAIT_EXPIRED"] = "LIMIT_WAIT_EXPIRED";
|
|
11
|
+
/** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
|
|
12
|
+
RewardItemCodeEnum["OUTCOME_UNKNOWN"] = "OUTCOME_UNKNOWN";
|
|
13
|
+
})(RewardItemCodeEnum || (exports.RewardItemCodeEnum = RewardItemCodeEnum = {}));
|
package/bin/rewards/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './enums/RewardsMessageTypeEnum';
|
|
2
2
|
export * from './enums/GrantStatusEnum';
|
|
3
3
|
export * from './enums/GrantItemStatusEnum';
|
|
4
|
+
export * from './enums/LimitWaitReasonEnum';
|
|
5
|
+
export * from './enums/RewardItemCodeEnum';
|
|
4
6
|
export * from './enums/GrantRejectReasonEnum';
|
|
5
7
|
export * from './enums/GrantFailedReasonEnum';
|
|
6
8
|
export * from './enums/ItemErrorCategoryEnum';
|
package/bin/rewards/index.js
CHANGED
|
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
__exportStar(require("./enums/RewardsMessageTypeEnum"), exports);
|
|
19
19
|
__exportStar(require("./enums/GrantStatusEnum"), exports);
|
|
20
20
|
__exportStar(require("./enums/GrantItemStatusEnum"), exports);
|
|
21
|
+
__exportStar(require("./enums/LimitWaitReasonEnum"), exports);
|
|
22
|
+
__exportStar(require("./enums/RewardItemCodeEnum"), exports);
|
|
21
23
|
__exportStar(require("./enums/GrantRejectReasonEnum"), exports);
|
|
22
24
|
__exportStar(require("./enums/GrantFailedReasonEnum"), exports);
|
|
23
25
|
__exportStar(require("./enums/ItemErrorCategoryEnum"), exports);
|
package/package.json
CHANGED
|
@@ -86,6 +86,10 @@ export enum ProductSubtypeEnum {
|
|
|
86
86
|
// Comisión de vendedor de SureKeep abonada a la wallet.
|
|
87
87
|
SUREKEEP_SELLER_COMMISSION_MX = "SELLER_COMMISSION_MX",
|
|
88
88
|
|
|
89
|
+
//REWARDS
|
|
90
|
+
// Abono de recompensas de `rewards-business`.
|
|
91
|
+
REWARD_MX = "REWARD_MX",
|
|
92
|
+
|
|
89
93
|
//STORE
|
|
90
94
|
STORE_PHONE = "PHONE",
|
|
91
95
|
|
|
@@ -63,5 +63,7 @@ export enum ProductTypeEnum {
|
|
|
63
63
|
* Dispersión SPEI de liquidaciones de beneficios (money-transfer-connector).
|
|
64
64
|
* Producto del catálogo para la orden STP que sale con `source=BENEFITS_SETTLEMENT`.
|
|
65
65
|
*/
|
|
66
|
-
MONEY_TRANSFER_SA = "MONEY_TRANSFER_SA"
|
|
66
|
+
MONEY_TRANSFER_SA = "MONEY_TRANSFER_SA",
|
|
67
|
+
/** Abono de recompensas de `rewards-business`. */
|
|
68
|
+
REWARDS = "REWARDS"
|
|
67
69
|
}
|
|
@@ -15,4 +15,6 @@ export enum RetailEventRejectCodeEnum {
|
|
|
15
15
|
IDENTIFIER_CONFLICT = 'IDENTIFIER_CONFLICT',
|
|
16
16
|
/** El evento trae una fecha posterior a la hora del servidor. */
|
|
17
17
|
EVENT_IN_FUTURE = 'EVENT_IN_FUTURE',
|
|
18
|
+
/** El usuario trae un rol que solo se asigna desde el backoffice (RETAILER_ADMIN, COLLECTION_AGENT). */
|
|
19
|
+
ROLE_NOT_ALLOWED_FROM_INTEGRATION = 'ROLE_NOT_ALLOWED_FROM_INTEGRATION',
|
|
18
20
|
}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { GrantItemResponse } from '../responses/GrantItemResponse';
|
|
2
|
+
import { LimitWaitReasonEnum } from '../../enums/LimitWaitReasonEnum';
|
|
2
3
|
import { BackofficeGrantAttemptResponse } from './BackofficeGrantAttemptResponse';
|
|
3
4
|
|
|
4
5
|
export class BackofficeGrantItemResponse extends GrantItemResponse {
|
|
5
6
|
/** Nombre de la recompensa congelada en la entrega. */
|
|
6
7
|
name: string;
|
|
7
8
|
attempts: BackofficeGrantAttemptResponse[];
|
|
9
|
+
/** Motivo de la espera por tope; solo cuando el ítem está en `WAITING_LIMIT`. */
|
|
10
|
+
waitReason?: LimitWaitReasonEnum;
|
|
11
|
+
/** Epoch ms del próximo intento programado. */
|
|
12
|
+
retryNotBefore?: number;
|
|
13
|
+
/** Epoch ms en que el ítem entró en espera. */
|
|
14
|
+
waitingSince?: number;
|
|
15
|
+
/** Cantidad de rechazos por tope acumulados. */
|
|
16
|
+
limitRejections?: number;
|
|
8
17
|
}
|
|
@@ -5,6 +5,8 @@ export enum GrantItemStatusEnum {
|
|
|
5
5
|
* ocurrido y el adaptador debe reconciliar antes de reintentar.
|
|
6
6
|
*/
|
|
7
7
|
PROCESSING = 'PROCESSING',
|
|
8
|
+
/** Espera por tope de nivel de la cuenta destino: no es `PROCESSING` ni `FAILED`; se reintenta solo. */
|
|
9
|
+
WAITING_LIMIT = 'WAITING_LIMIT',
|
|
8
10
|
GRANTED = 'GRANTED',
|
|
9
11
|
FAILED = 'FAILED',
|
|
10
12
|
SKIPPED = 'SKIPPED',
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Motivo por el que un ítem espera: `processorCode` del rechazo por tope de nivel de la cuenta destino. */
|
|
2
|
+
export enum LimitWaitReasonEnum {
|
|
3
|
+
/** Tope mensual de monto del nivel de la cuenta. */
|
|
4
|
+
MONTHLY_AMOUNT_EXCEEDED = 'ACCOUNT_LEVEL_MAX_MONTHLY_AMOUNT_EXCEEDED',
|
|
5
|
+
/** Tope de saldo disponible del nivel de la cuenta. */
|
|
6
|
+
AVAILABLE_BALANCE_EXCEEDED = 'ACCOUNT_LEVEL_MAX_AVAILABLE_BALANCE_EXCEEDED',
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Códigos de resultado de un ítem de entrega que no vienen del proveedor. */
|
|
2
|
+
export enum RewardItemCodeEnum {
|
|
3
|
+
/** El monto del ítem supera el máximo permitido. */
|
|
4
|
+
AMOUNT_ABOVE_MAX = 'AMOUNT_ABOVE_MAX',
|
|
5
|
+
/** Venció la espera por tope (30 días desde `waitingSince`). */
|
|
6
|
+
LIMIT_WAIT_EXPIRED = 'LIMIT_WAIT_EXPIRED',
|
|
7
|
+
/** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
|
|
8
|
+
OUTCOME_UNKNOWN = 'OUTCOME_UNKNOWN',
|
|
9
|
+
}
|
package/src/rewards/index.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export * from './enums/RewardsMessageTypeEnum';
|
|
3
3
|
export * from './enums/GrantStatusEnum';
|
|
4
4
|
export * from './enums/GrantItemStatusEnum';
|
|
5
|
+
export * from './enums/LimitWaitReasonEnum';
|
|
6
|
+
export * from './enums/RewardItemCodeEnum';
|
|
5
7
|
export * from './enums/GrantRejectReasonEnum';
|
|
6
8
|
export * from './enums/GrantFailedReasonEnum';
|
|
7
9
|
export * from './enums/ItemErrorCategoryEnum';
|