@fiado/type-kit 3.556.0 → 3.558.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/bin/notificationMessages/dtos/DisputeNotificationData.d.ts +9 -0
- package/bin/notificationMessages/dtos/DisputeNotificationData.js +10 -0
- package/bin/notificationMessages/index.d.ts +1 -0
- package/bin/notificationMessages/index.js +1 -0
- package/bin/rules/dtos/population/PopulationSegmentDefinition.d.ts +3 -0
- package/bin/rules/dtos/population/PopulationSegmentDefinition.js +7 -0
- package/bin/rules/enums/SegmentOutputEnum.d.ts +5 -0
- package/bin/rules/enums/SegmentOutputEnum.js +9 -0
- package/bin/rules/index.d.ts +1 -0
- package/bin/rules/index.js +1 -0
- package/bin/transaction/dtos/DisputeGetDetailResponse.d.ts +32 -0
- package/bin/transaction/dtos/DisputeGetDetailResponse.js +12 -0
- package/bin/transaction/dtos/DisputeRefundSummary.d.ts +14 -0
- package/bin/transaction/dtos/DisputeRefundSummary.js +10 -0
- package/bin/transaction/dtos/R27EventPayload.d.ts +11 -0
- package/bin/transaction/dtos/R27EventPayload.js +11 -0
- package/bin/transaction/dtos/RefundInstruction.d.ts +12 -0
- package/bin/transaction/dtos/RefundInstruction.js +13 -0
- package/bin/transaction/dtos/ReopenDisputeResponse.d.ts +15 -0
- package/bin/transaction/dtos/ReopenDisputeResponse.js +11 -0
- package/bin/transaction/dtos/UpdateR27StatusRequest.d.ts +3 -0
- package/bin/transaction/dtos/UpdateR27StatusRequest.js +0 -4
- package/bin/transaction/dtos/UpdateR27StatusResponse.d.ts +3 -0
- package/bin/transaction/dtos/UpdateR27StatusResponse.js +0 -5
- package/bin/transaction/enums/R27ActorRoleEnum.d.ts +8 -0
- package/bin/transaction/enums/R27ActorRoleEnum.js +12 -0
- package/bin/transaction/enums/R27StatusEnum.d.ts +11 -0
- package/bin/transaction/enums/R27StatusEnum.js +15 -0
- package/bin/transaction/index.d.ts +7 -0
- package/bin/transaction/index.js +7 -0
- package/package.json +1 -1
- package/src/notificationMessages/dtos/DisputeNotificationData.ts +9 -0
- package/src/notificationMessages/index.ts +1 -0
- package/src/rules/dtos/population/PopulationSegmentDefinition.ts +4 -1
- package/src/rules/enums/SegmentOutputEnum.ts +5 -0
- package/src/rules/index.ts +1 -0
- package/src/transaction/dtos/DisputeGetDetailResponse.ts +33 -0
- package/src/transaction/dtos/DisputeRefundSummary.ts +15 -0
- package/src/transaction/dtos/R27EventPayload.ts +12 -0
- package/src/transaction/dtos/RefundInstruction.ts +12 -0
- package/src/transaction/dtos/ReopenDisputeResponse.ts +16 -0
- package/src/transaction/dtos/UpdateR27StatusRequest.ts +4 -0
- package/src/transaction/dtos/UpdateR27StatusResponse.ts +4 -0
- package/src/transaction/enums/R27ActorRoleEnum.ts +8 -0
- package/src/transaction/enums/R27StatusEnum.ts +11 -0
- package/src/transaction/index.ts +7 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `destinations[].data` de los pushes DISPUTE_* (dictamen, reapertura, 2° dictamen).
|
|
3
|
+
* La app lo usa para saber de qué folio es el push: recargar el detalle o abrir la ficha.
|
|
4
|
+
*/
|
|
5
|
+
export declare class DisputeNotificationData {
|
|
6
|
+
id: string;
|
|
7
|
+
folio: string;
|
|
8
|
+
folioId?: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisputeNotificationData = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `destinations[].data` de los pushes DISPUTE_* (dictamen, reapertura, 2° dictamen).
|
|
6
|
+
* La app lo usa para saber de qué folio es el push: recargar el detalle o abrir la ficha.
|
|
7
|
+
*/
|
|
8
|
+
class DisputeNotificationData {
|
|
9
|
+
}
|
|
10
|
+
exports.DisputeNotificationData = DisputeNotificationData;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './dtos/NotificationQueueMessageRequest';
|
|
2
2
|
export * from './dtos/QueueMessageDestination';
|
|
3
|
+
export * from './dtos/DisputeNotificationData';
|
|
3
4
|
export * from './dtos/QueueMessageVariableValues';
|
|
4
5
|
export * from './dtos/NotificationTemplate';
|
|
5
6
|
export * from './dtos/MomentTemplateUpsertRequest';
|
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./dtos/NotificationQueueMessageRequest"), exports);
|
|
18
18
|
__exportStar(require("./dtos/QueueMessageDestination"), exports);
|
|
19
|
+
__exportStar(require("./dtos/DisputeNotificationData"), exports);
|
|
19
20
|
__exportStar(require("./dtos/QueueMessageVariableValues"), exports);
|
|
20
21
|
__exportStar(require("./dtos/NotificationTemplate"), exports);
|
|
21
22
|
__exportStar(require("./dtos/MomentTemplateUpsertRequest"), exports);
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { SegmentMatchEnum } from '../../enums/SegmentMatchEnum';
|
|
2
|
+
import { SegmentOutputEnum } from '../../enums/SegmentOutputEnum';
|
|
2
3
|
import { SegmentGroup } from './SegmentGroup';
|
|
3
4
|
/** El constructor tal cual (A§4.1): tabla ancla (una fila -> un directoryid), TODAS/ALGUNA global y grupos con su propio TODAS/ALGUNA. */
|
|
4
5
|
export declare class PopulationSegmentDefinition {
|
|
5
6
|
baseTable: string;
|
|
7
|
+
/** Que se devuelve por fila. Ausente = DIRECTORY_ID. PHONE devuelve el telefono (sirve para personas sin cuenta); en ese caso `ids`/`afterDirectoryId` llevan telefonos. */
|
|
8
|
+
output?: SegmentOutputEnum;
|
|
6
9
|
match: SegmentMatchEnum;
|
|
7
10
|
groups: SegmentGroup[];
|
|
8
11
|
}
|
|
@@ -14,6 +14,7 @@ const class_transformer_1 = require("class-transformer");
|
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const SegmentLimits_1 = require("../../constants/SegmentLimits");
|
|
16
16
|
const SegmentMatchEnum_1 = require("../../enums/SegmentMatchEnum");
|
|
17
|
+
const SegmentOutputEnum_1 = require("../../enums/SegmentOutputEnum");
|
|
17
18
|
const SegmentGroup_1 = require("./SegmentGroup");
|
|
18
19
|
/** El constructor tal cual (A§4.1): tabla ancla (una fila -> un directoryid), TODAS/ALGUNA global y grupos con su propio TODAS/ALGUNA. */
|
|
19
20
|
class PopulationSegmentDefinition {
|
|
@@ -24,6 +25,12 @@ __decorate([
|
|
|
24
25
|
(0, class_validator_1.Matches)(SegmentLimits_1.SEGMENT_IDENTIFIER_PATTERN),
|
|
25
26
|
__metadata("design:type", String)
|
|
26
27
|
], PopulationSegmentDefinition.prototype, "baseTable", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_transformer_1.Expose)(),
|
|
30
|
+
(0, class_validator_1.IsOptional)(),
|
|
31
|
+
(0, class_validator_1.IsEnum)(SegmentOutputEnum_1.SegmentOutputEnum),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], PopulationSegmentDefinition.prototype, "output", void 0);
|
|
27
34
|
__decorate([
|
|
28
35
|
(0, class_transformer_1.Expose)(),
|
|
29
36
|
(0, class_validator_1.IsEnum)(SegmentMatchEnum_1.SegmentMatchEnum),
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SegmentOutputEnum = void 0;
|
|
4
|
+
/** Que devuelve la poblacion: el directoryId (por defecto) o el telefono (personas sin cuenta, que no tienen directoryId). */
|
|
5
|
+
var SegmentOutputEnum;
|
|
6
|
+
(function (SegmentOutputEnum) {
|
|
7
|
+
SegmentOutputEnum["DIRECTORY_ID"] = "DIRECTORY_ID";
|
|
8
|
+
SegmentOutputEnum["PHONE"] = "PHONE";
|
|
9
|
+
})(SegmentOutputEnum || (exports.SegmentOutputEnum = SegmentOutputEnum = {}));
|
package/bin/rules/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './dtos/RulesTraceResponse';
|
|
|
14
14
|
export * from './dtos/EvaluateRulesRequest';
|
|
15
15
|
export * from './dtos/EvaluateRulesResponse';
|
|
16
16
|
export * from './enums/SegmentMatchEnum';
|
|
17
|
+
export * from './enums/SegmentOutputEnum';
|
|
17
18
|
export * from './enums/SegmentConditionKindEnum';
|
|
18
19
|
export * from './enums/SegmentAggregateFnEnum';
|
|
19
20
|
export * from './enums/SegmentOperatorEnum';
|
package/bin/rules/index.js
CHANGED
|
@@ -34,6 +34,7 @@ __exportStar(require("./dtos/EvaluateRulesRequest"), exports);
|
|
|
34
34
|
__exportStar(require("./dtos/EvaluateRulesResponse"), exports);
|
|
35
35
|
//Poblacion (movido desde rewardsEligibility; alli queda re-export)
|
|
36
36
|
__exportStar(require("./enums/SegmentMatchEnum"), exports);
|
|
37
|
+
__exportStar(require("./enums/SegmentOutputEnum"), exports);
|
|
37
38
|
__exportStar(require("./enums/SegmentConditionKindEnum"), exports);
|
|
38
39
|
__exportStar(require("./enums/SegmentAggregateFnEnum"), exports);
|
|
39
40
|
__exportStar(require("./enums/SegmentOperatorEnum"), exports);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DisputeRefundSummary } from './DisputeRefundSummary';
|
|
2
|
+
import { R27StatusEnum } from '../enums/R27StatusEnum';
|
|
3
|
+
/**
|
|
4
|
+
* `data` de GET disputes/transaction/{code}/{transactionNumber} (pública, app).
|
|
5
|
+
* Devuelve el folio completo (todos los atributos de DisputeOrFraudLog) más los campos
|
|
6
|
+
* normalizados/enriquecidos que la app necesita para el detalle del movimiento.
|
|
7
|
+
* Vale desde cualquier movimiento ligado al folio (tx reclamada, abono o reversa).
|
|
8
|
+
*/
|
|
9
|
+
export declare class DisputeGetDetailResponse {
|
|
10
|
+
id: string;
|
|
11
|
+
disputeOrFraudFolio: string;
|
|
12
|
+
directoryId: string;
|
|
13
|
+
disputeOrFraudStatus: R27StatusEnum;
|
|
14
|
+
disputeOrFraudStatusUpdate: string;
|
|
15
|
+
dateOfDisputedTx: string;
|
|
16
|
+
disputedTxNumber: string;
|
|
17
|
+
amountOfDisputedTx: number;
|
|
18
|
+
/** Sentido del dictamen (701-705 improcedente, 706-709 procedente). '' hasta el dictamen. */
|
|
19
|
+
disputeResolutionCause: string;
|
|
20
|
+
disputeResolutionDate: string;
|
|
21
|
+
/** Siempre presente (0 si nunca se reabrió). Botón "segunda revisión": status 102 + causa 701-705 + reopenCount 0. */
|
|
22
|
+
reopenCount: number;
|
|
23
|
+
reopenedAt?: string;
|
|
24
|
+
reopenedReason?: string;
|
|
25
|
+
refundTransactionId?: string;
|
|
26
|
+
/** Abono (provisional o por dictamen). */
|
|
27
|
+
refund?: DisputeRefundSummary;
|
|
28
|
+
/** Reversa del abono; la fecha del abono original está en `refund.executedAt`. */
|
|
29
|
+
reversal?: DisputeRefundSummary;
|
|
30
|
+
/** Resto de atributos del folio (merchant, statusHistory, etc.). */
|
|
31
|
+
[attribute: string]: unknown;
|
|
32
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisputeGetDetailResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `data` de GET disputes/transaction/{code}/{transactionNumber} (pública, app).
|
|
6
|
+
* Devuelve el folio completo (todos los atributos de DisputeOrFraudLog) más los campos
|
|
7
|
+
* normalizados/enriquecidos que la app necesita para el detalle del movimiento.
|
|
8
|
+
* Vale desde cualquier movimiento ligado al folio (tx reclamada, abono o reversa).
|
|
9
|
+
*/
|
|
10
|
+
class DisputeGetDetailResponse {
|
|
11
|
+
}
|
|
12
|
+
exports.DisputeGetDetailResponse = DisputeGetDetailResponse;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DisputeRefundStatus } from '../enums/DisputeRefundStatus';
|
|
2
|
+
import { RefundChannelEnum } from '../enums/RefundChannelEnum';
|
|
3
|
+
/**
|
|
4
|
+
* Reintegro (abono o reversa) ligado a una reclamación, tal como lo consume la app
|
|
5
|
+
* en el detalle del movimiento. Resumen de una fila de DisputeRefund_GT.
|
|
6
|
+
*/
|
|
7
|
+
export declare class DisputeRefundSummary {
|
|
8
|
+
id: string;
|
|
9
|
+
transactionId?: string;
|
|
10
|
+
status: DisputeRefundStatus;
|
|
11
|
+
amount: number;
|
|
12
|
+
channel?: RefundChannelEnum;
|
|
13
|
+
executedAt?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisputeRefundSummary = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Reintegro (abono o reversa) ligado a una reclamación, tal como lo consume la app
|
|
6
|
+
* en el detalle del movimiento. Resumen de una fila de DisputeRefund_GT.
|
|
7
|
+
*/
|
|
8
|
+
class DisputeRefundSummary {
|
|
9
|
+
}
|
|
10
|
+
exports.DisputeRefundSummary = DisputeRefundSummary;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { R27StatusEnum } from '../enums/R27StatusEnum';
|
|
2
|
+
/**
|
|
3
|
+
* Evento R27 compacto incluido en las respuestas de disputes-business
|
|
4
|
+
* (reapertura y firma de dictamen). El Dashboard usa `eventId` como
|
|
5
|
+
* `folioEventId` al autorizar el reintegro.
|
|
6
|
+
*/
|
|
7
|
+
export declare class R27EventPayload {
|
|
8
|
+
eventId: string;
|
|
9
|
+
code: R27StatusEnum;
|
|
10
|
+
occurredAt: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.R27EventPayload = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Evento R27 compacto incluido en las respuestas de disputes-business
|
|
6
|
+
* (reapertura y firma de dictamen). El Dashboard usa `eventId` como
|
|
7
|
+
* `folioEventId` al autorizar el reintegro.
|
|
8
|
+
*/
|
|
9
|
+
class R27EventPayload {
|
|
10
|
+
}
|
|
11
|
+
exports.R27EventPayload = R27EventPayload;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instrucción de reintegro adjunta a la firma del dictamen (UpdateR27StatusRequest.refundInstruction).
|
|
3
|
+
* Política SP1:
|
|
4
|
+
* 1 = post-dictamen 2FA (el Dashboard genera la tx antes de cerrar el folio)
|
|
5
|
+
* 2 = T+2 provisional (ya abonado — se confirma el id existente)
|
|
6
|
+
* 3 = error operativo (reintegro manual)
|
|
7
|
+
*/
|
|
8
|
+
export declare class RefundInstruction {
|
|
9
|
+
camino: 1 | 2 | 3;
|
|
10
|
+
/** Id de la tx de refund en el ledger. Presente cuando el refund ya ocurrió. */
|
|
11
|
+
refundTransactionId?: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RefundInstruction = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Instrucción de reintegro adjunta a la firma del dictamen (UpdateR27StatusRequest.refundInstruction).
|
|
6
|
+
* Política SP1:
|
|
7
|
+
* 1 = post-dictamen 2FA (el Dashboard genera la tx antes de cerrar el folio)
|
|
8
|
+
* 2 = T+2 provisional (ya abonado — se confirma el id existente)
|
|
9
|
+
* 3 = error operativo (reintegro manual)
|
|
10
|
+
*/
|
|
11
|
+
class RefundInstruction {
|
|
12
|
+
}
|
|
13
|
+
exports.RefundInstruction = RefundInstruction;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { R27EventPayload } from './R27EventPayload';
|
|
2
|
+
/**
|
|
3
|
+
* Response 200 de la reapertura de reclamación (102 -> 103):
|
|
4
|
+
* privada POST disputes/{folioId}/reopen (CS/OC) y pública POST disputes/reopen/{folioId} (app).
|
|
5
|
+
* Idempotente: si el folio ya estaba en 103 con el mismo motivo responde este mismo shape.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ReopenDisputeResponse {
|
|
8
|
+
success: boolean;
|
|
9
|
+
folio: string;
|
|
10
|
+
id: string;
|
|
11
|
+
currentStatus: number;
|
|
12
|
+
reopenCount: number;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
lastEvent?: R27EventPayload;
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReopenDisputeResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Response 200 de la reapertura de reclamación (102 -> 103):
|
|
6
|
+
* privada POST disputes/{folioId}/reopen (CS/OC) y pública POST disputes/reopen/{folioId} (app).
|
|
7
|
+
* Idempotente: si el folio ya estaba en 103 con el mismo motivo responde este mismo shape.
|
|
8
|
+
*/
|
|
9
|
+
class ReopenDisputeResponse {
|
|
10
|
+
}
|
|
11
|
+
exports.ReopenDisputeResponse = ReopenDisputeResponse;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Request del endpoint BO-R27 (cierre de dictamen UNE) en disputes-business.
|
|
3
3
|
* POST disputes/{id}/r27-status — privado (VPC/VPN, sin Cognito).
|
|
4
4
|
*/
|
|
5
|
+
import { RefundInstruction } from './RefundInstruction';
|
|
5
6
|
export declare class UpdateR27StatusRequest {
|
|
6
7
|
newR27Status: number;
|
|
7
8
|
resolutionDate: string;
|
|
@@ -10,4 +11,6 @@ export declare class UpdateR27StatusRequest {
|
|
|
10
11
|
signedByName: string;
|
|
11
12
|
dictamenS3Key: string;
|
|
12
13
|
contentHash: string;
|
|
14
|
+
/** Opcional (backward compat). Sólo se persiste refundTransactionId si resolutionCause ∈ 706-709. */
|
|
15
|
+
refundInstruction?: RefundInstruction;
|
|
13
16
|
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpdateR27StatusRequest = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Request del endpoint BO-R27 (cierre de dictamen UNE) en disputes-business.
|
|
6
|
-
* POST disputes/{id}/r27-status — privado (VPC/VPN, sin Cognito).
|
|
7
|
-
*/
|
|
8
4
|
class UpdateR27StatusRequest {
|
|
9
5
|
}
|
|
10
6
|
exports.UpdateR27StatusRequest = UpdateR27StatusRequest;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* mismo valor numerico (101-104): r27Status es el nombre del contrato, mapeado
|
|
4
4
|
* internamente a disputeOrFraudStatus (vocabulario que ya lee la app).
|
|
5
5
|
*/
|
|
6
|
+
import { R27EventPayload } from './R27EventPayload';
|
|
6
7
|
export declare class UpdateR27StatusResponse {
|
|
7
8
|
success: boolean;
|
|
8
9
|
folio: string;
|
|
@@ -10,4 +11,6 @@ export declare class UpdateR27StatusResponse {
|
|
|
10
11
|
r27Status: number;
|
|
11
12
|
disputeOrFraudStatus: string;
|
|
12
13
|
updatedAt: string;
|
|
14
|
+
lastEvent?: R27EventPayload;
|
|
15
|
+
refundTransactionId?: string;
|
|
13
16
|
}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpdateR27StatusResponse = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Response 200 del endpoint BO-R27. `r27Status` y `disputeOrFraudStatus` son el
|
|
6
|
-
* mismo valor numerico (101-104): r27Status es el nombre del contrato, mapeado
|
|
7
|
-
* internamente a disputeOrFraudStatus (vocabulario que ya lee la app).
|
|
8
|
-
*/
|
|
9
4
|
class UpdateR27StatusResponse {
|
|
10
5
|
}
|
|
11
6
|
exports.UpdateR27StatusResponse = UpdateR27StatusResponse;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Rol de quien ejecuta una transición R27 (`statusHistory[].actor.role`). Valores reales en DDB. */
|
|
2
|
+
export declare enum R27ActorRoleEnum {
|
|
3
|
+
CLIENT = "client",
|
|
4
|
+
OFICIAL_CUMPLIMIENTO = "oficial_cumplimiento",
|
|
5
|
+
TITULAR_UNE = "TitularUNE",
|
|
6
|
+
BACKOFFICE = "BACKOFFICE",
|
|
7
|
+
SYSTEM = "System"
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.R27ActorRoleEnum = void 0;
|
|
4
|
+
/** Rol de quien ejecuta una transición R27 (`statusHistory[].actor.role`). Valores reales en DDB. */
|
|
5
|
+
var R27ActorRoleEnum;
|
|
6
|
+
(function (R27ActorRoleEnum) {
|
|
7
|
+
R27ActorRoleEnum["CLIENT"] = "client";
|
|
8
|
+
R27ActorRoleEnum["OFICIAL_CUMPLIMIENTO"] = "oficial_cumplimiento";
|
|
9
|
+
R27ActorRoleEnum["TITULAR_UNE"] = "TitularUNE";
|
|
10
|
+
R27ActorRoleEnum["BACKOFFICE"] = "BACKOFFICE";
|
|
11
|
+
R27ActorRoleEnum["SYSTEM"] = "System";
|
|
12
|
+
})(R27ActorRoleEnum || (exports.R27ActorRoleEnum = R27ActorRoleEnum = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado R27 (CNBV) de una reclamación. Se persiste como string en
|
|
3
|
+
* `DisputeOrFraudLog.disputeOrFraudStatus` y en `statusHistory[].code`.
|
|
4
|
+
* 101 pendiente · 102 1er dictamen · 103 reapertura (máx 1) · 104 2° dictamen (terminal)
|
|
5
|
+
*/
|
|
6
|
+
export declare enum R27StatusEnum {
|
|
7
|
+
PENDING = "101",
|
|
8
|
+
RESOLVED = "102",
|
|
9
|
+
REOPENED = "103",
|
|
10
|
+
RESOLVED_AFTER_REOPEN = "104"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.R27StatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado R27 (CNBV) de una reclamación. Se persiste como string en
|
|
6
|
+
* `DisputeOrFraudLog.disputeOrFraudStatus` y en `statusHistory[].code`.
|
|
7
|
+
* 101 pendiente · 102 1er dictamen · 103 reapertura (máx 1) · 104 2° dictamen (terminal)
|
|
8
|
+
*/
|
|
9
|
+
var R27StatusEnum;
|
|
10
|
+
(function (R27StatusEnum) {
|
|
11
|
+
R27StatusEnum["PENDING"] = "101";
|
|
12
|
+
R27StatusEnum["RESOLVED"] = "102";
|
|
13
|
+
R27StatusEnum["REOPENED"] = "103";
|
|
14
|
+
R27StatusEnum["RESOLVED_AFTER_REOPEN"] = "104";
|
|
15
|
+
})(R27StatusEnum || (exports.R27StatusEnum = R27StatusEnum = {}));
|
|
@@ -2,6 +2,11 @@ export * from './dtos/CounterQueryResponse';
|
|
|
2
2
|
export * from './dtos/UpdateR27StatusRequest';
|
|
3
3
|
export * from './dtos/UpdateR27StatusResponse';
|
|
4
4
|
export * from './dtos/ReopenDisputeRequest';
|
|
5
|
+
export * from './dtos/ReopenDisputeResponse';
|
|
6
|
+
export * from './dtos/R27EventPayload';
|
|
7
|
+
export * from './dtos/RefundInstruction';
|
|
8
|
+
export * from './dtos/DisputeRefundSummary';
|
|
9
|
+
export * from './dtos/DisputeGetDetailResponse';
|
|
5
10
|
export * from './dtos/CreateDisputePrivateRequest';
|
|
6
11
|
export * from './dtos/TransactionCreateRequest';
|
|
7
12
|
export * from './dtos/TransactionCreateResponse';
|
|
@@ -36,6 +41,8 @@ export * from './enums/TransactionSourceEnum';
|
|
|
36
41
|
export * from './enums/TransactionStatusEnum';
|
|
37
42
|
export * from './enums/DisputeOrFraudEnum';
|
|
38
43
|
export * from './enums/DisputeOrFraudStatusEnum';
|
|
44
|
+
export * from './enums/R27StatusEnum';
|
|
45
|
+
export * from './enums/R27ActorRoleEnum';
|
|
39
46
|
export * from './enums/ActivityProblemStatusEnum';
|
|
40
47
|
export * from './enums/RefundChannelEnum';
|
|
41
48
|
export * from './enums/RefundPathTypeEnum';
|
package/bin/transaction/index.js
CHANGED
|
@@ -19,6 +19,11 @@ __exportStar(require("./dtos/CounterQueryResponse"), exports);
|
|
|
19
19
|
__exportStar(require("./dtos/UpdateR27StatusRequest"), exports);
|
|
20
20
|
__exportStar(require("./dtos/UpdateR27StatusResponse"), exports);
|
|
21
21
|
__exportStar(require("./dtos/ReopenDisputeRequest"), exports);
|
|
22
|
+
__exportStar(require("./dtos/ReopenDisputeResponse"), exports);
|
|
23
|
+
__exportStar(require("./dtos/R27EventPayload"), exports);
|
|
24
|
+
__exportStar(require("./dtos/RefundInstruction"), exports);
|
|
25
|
+
__exportStar(require("./dtos/DisputeRefundSummary"), exports);
|
|
26
|
+
__exportStar(require("./dtos/DisputeGetDetailResponse"), exports);
|
|
22
27
|
__exportStar(require("./dtos/CreateDisputePrivateRequest"), exports);
|
|
23
28
|
__exportStar(require("./dtos/TransactionCreateRequest"), exports);
|
|
24
29
|
__exportStar(require("./dtos/TransactionCreateResponse"), exports);
|
|
@@ -54,6 +59,8 @@ __exportStar(require("./enums/TransactionSourceEnum"), exports);
|
|
|
54
59
|
__exportStar(require("./enums/TransactionStatusEnum"), exports);
|
|
55
60
|
__exportStar(require("./enums/DisputeOrFraudEnum"), exports);
|
|
56
61
|
__exportStar(require("./enums/DisputeOrFraudStatusEnum"), exports);
|
|
62
|
+
__exportStar(require("./enums/R27StatusEnum"), exports);
|
|
63
|
+
__exportStar(require("./enums/R27ActorRoleEnum"), exports);
|
|
57
64
|
__exportStar(require("./enums/ActivityProblemStatusEnum"), exports);
|
|
58
65
|
__exportStar(require("./enums/RefundChannelEnum"), exports);
|
|
59
66
|
__exportStar(require("./enums/RefundPathTypeEnum"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `destinations[].data` de los pushes DISPUTE_* (dictamen, reapertura, 2° dictamen).
|
|
3
|
+
* La app lo usa para saber de qué folio es el push: recargar el detalle o abrir la ficha.
|
|
4
|
+
*/
|
|
5
|
+
export class DisputeNotificationData {
|
|
6
|
+
id: string; // templateId (DISPUTE_DICTAMEN_PROCEDENTE, DISPUTE_REOPEN_CONFIRMED, ...)
|
|
7
|
+
folio: string; // disputeOrFraudFolio
|
|
8
|
+
folioId?: string; // id del folio en DisputeOrFraudLog
|
|
9
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './dtos/NotificationQueueMessageRequest';
|
|
2
2
|
export * from './dtos/QueueMessageDestination';
|
|
3
|
+
export * from './dtos/DisputeNotificationData';
|
|
3
4
|
export * from './dtos/QueueMessageVariableValues';
|
|
4
5
|
export * from './dtos/NotificationTemplate';
|
|
5
6
|
export * from './dtos/MomentTemplateUpsertRequest';
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Expose, Type } from 'class-transformer';
|
|
2
|
-
import { ArrayMaxSize, ArrayMinSize, IsArray, IsEnum, Matches, ValidateNested } from 'class-validator';
|
|
2
|
+
import { ArrayMaxSize, ArrayMinSize, IsArray, IsEnum, IsOptional, Matches, ValidateNested } from 'class-validator';
|
|
3
3
|
import { SEGMENT_IDENTIFIER_PATTERN } from '../../constants/SegmentLimits';
|
|
4
4
|
import { SegmentMatchEnum } from '../../enums/SegmentMatchEnum';
|
|
5
|
+
import { SegmentOutputEnum } from '../../enums/SegmentOutputEnum';
|
|
5
6
|
import { SegmentGroup } from './SegmentGroup';
|
|
6
7
|
|
|
7
8
|
/** El constructor tal cual (A§4.1): tabla ancla (una fila -> un directoryid), TODAS/ALGUNA global y grupos con su propio TODAS/ALGUNA. */
|
|
8
9
|
export class PopulationSegmentDefinition {
|
|
9
10
|
@Expose() @Matches(SEGMENT_IDENTIFIER_PATTERN) baseTable: string;
|
|
11
|
+
/** Que se devuelve por fila. Ausente = DIRECTORY_ID. PHONE devuelve el telefono (sirve para personas sin cuenta); en ese caso `ids`/`afterDirectoryId` llevan telefonos. */
|
|
12
|
+
@Expose() @IsOptional() @IsEnum(SegmentOutputEnum) output?: SegmentOutputEnum;
|
|
10
13
|
@Expose() @IsEnum(SegmentMatchEnum) match: SegmentMatchEnum;
|
|
11
14
|
@Expose() @IsArray() @ArrayMinSize(1) @ArrayMaxSize(10) @ValidateNested({ each: true }) @Type(() => SegmentGroup) groups: SegmentGroup[];
|
|
12
15
|
}
|
package/src/rules/index.ts
CHANGED
|
@@ -21,6 +21,7 @@ export * from './dtos/EvaluateRulesResponse';
|
|
|
21
21
|
|
|
22
22
|
//Poblacion (movido desde rewardsEligibility; alli queda re-export)
|
|
23
23
|
export * from './enums/SegmentMatchEnum';
|
|
24
|
+
export * from './enums/SegmentOutputEnum';
|
|
24
25
|
export * from './enums/SegmentConditionKindEnum';
|
|
25
26
|
export * from './enums/SegmentAggregateFnEnum';
|
|
26
27
|
export * from './enums/SegmentOperatorEnum';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DisputeRefundSummary } from './DisputeRefundSummary';
|
|
2
|
+
import { R27StatusEnum } from '../enums/R27StatusEnum';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `data` de GET disputes/transaction/{code}/{transactionNumber} (pública, app).
|
|
6
|
+
* Devuelve el folio completo (todos los atributos de DisputeOrFraudLog) más los campos
|
|
7
|
+
* normalizados/enriquecidos que la app necesita para el detalle del movimiento.
|
|
8
|
+
* Vale desde cualquier movimiento ligado al folio (tx reclamada, abono o reversa).
|
|
9
|
+
*/
|
|
10
|
+
export class DisputeGetDetailResponse {
|
|
11
|
+
id: string;
|
|
12
|
+
disputeOrFraudFolio: string;
|
|
13
|
+
directoryId: string;
|
|
14
|
+
disputeOrFraudStatus: R27StatusEnum;
|
|
15
|
+
disputeOrFraudStatusUpdate: string;
|
|
16
|
+
dateOfDisputedTx: string;
|
|
17
|
+
disputedTxNumber: string;
|
|
18
|
+
amountOfDisputedTx: number;
|
|
19
|
+
/** Sentido del dictamen (701-705 improcedente, 706-709 procedente). '' hasta el dictamen. */
|
|
20
|
+
disputeResolutionCause: string;
|
|
21
|
+
disputeResolutionDate: string;
|
|
22
|
+
/** Siempre presente (0 si nunca se reabrió). Botón "segunda revisión": status 102 + causa 701-705 + reopenCount 0. */
|
|
23
|
+
reopenCount: number;
|
|
24
|
+
reopenedAt?: string;
|
|
25
|
+
reopenedReason?: string;
|
|
26
|
+
refundTransactionId?: string;
|
|
27
|
+
/** Abono (provisional o por dictamen). */
|
|
28
|
+
refund?: DisputeRefundSummary;
|
|
29
|
+
/** Reversa del abono; la fecha del abono original está en `refund.executedAt`. */
|
|
30
|
+
reversal?: DisputeRefundSummary;
|
|
31
|
+
/** Resto de atributos del folio (merchant, statusHistory, etc.). */
|
|
32
|
+
[attribute: string]: unknown;
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DisputeRefundStatus } from '../enums/DisputeRefundStatus';
|
|
2
|
+
import { RefundChannelEnum } from '../enums/RefundChannelEnum';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Reintegro (abono o reversa) ligado a una reclamación, tal como lo consume la app
|
|
6
|
+
* en el detalle del movimiento. Resumen de una fila de DisputeRefund_GT.
|
|
7
|
+
*/
|
|
8
|
+
export class DisputeRefundSummary {
|
|
9
|
+
id: string;
|
|
10
|
+
transactionId?: string; // id de la tx en PagoConfiadoTx_GT
|
|
11
|
+
status: DisputeRefundStatus;
|
|
12
|
+
amount: number;
|
|
13
|
+
channel?: RefundChannelEnum;
|
|
14
|
+
executedAt?: string; // ISO — fecha del abono / de la reversa
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { R27StatusEnum } from '../enums/R27StatusEnum';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Evento R27 compacto incluido en las respuestas de disputes-business
|
|
5
|
+
* (reapertura y firma de dictamen). El Dashboard usa `eventId` como
|
|
6
|
+
* `folioEventId` al autorizar el reintegro.
|
|
7
|
+
*/
|
|
8
|
+
export class R27EventPayload {
|
|
9
|
+
eventId: string;
|
|
10
|
+
code: R27StatusEnum;
|
|
11
|
+
occurredAt: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instrucción de reintegro adjunta a la firma del dictamen (UpdateR27StatusRequest.refundInstruction).
|
|
3
|
+
* Política SP1:
|
|
4
|
+
* 1 = post-dictamen 2FA (el Dashboard genera la tx antes de cerrar el folio)
|
|
5
|
+
* 2 = T+2 provisional (ya abonado — se confirma el id existente)
|
|
6
|
+
* 3 = error operativo (reintegro manual)
|
|
7
|
+
*/
|
|
8
|
+
export class RefundInstruction {
|
|
9
|
+
camino: 1 | 2 | 3;
|
|
10
|
+
/** Id de la tx de refund en el ledger. Presente cuando el refund ya ocurrió. */
|
|
11
|
+
refundTransactionId?: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { R27EventPayload } from './R27EventPayload';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Response 200 de la reapertura de reclamación (102 -> 103):
|
|
5
|
+
* privada POST disputes/{folioId}/reopen (CS/OC) y pública POST disputes/reopen/{folioId} (app).
|
|
6
|
+
* Idempotente: si el folio ya estaba en 103 con el mismo motivo responde este mismo shape.
|
|
7
|
+
*/
|
|
8
|
+
export class ReopenDisputeResponse {
|
|
9
|
+
success: boolean;
|
|
10
|
+
folio: string;
|
|
11
|
+
id: string;
|
|
12
|
+
currentStatus: number; // 103
|
|
13
|
+
reopenCount: number; // 1
|
|
14
|
+
updatedAt: string; // ISO
|
|
15
|
+
lastEvent?: R27EventPayload; // ausente en folios legacy sin statusHistory
|
|
16
|
+
}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Request del endpoint BO-R27 (cierre de dictamen UNE) en disputes-business.
|
|
3
3
|
* POST disputes/{id}/r27-status — privado (VPC/VPN, sin Cognito).
|
|
4
4
|
*/
|
|
5
|
+
import { RefundInstruction } from './RefundInstruction';
|
|
6
|
+
|
|
5
7
|
export class UpdateR27StatusRequest {
|
|
6
8
|
newR27Status: number; // 102 | 104
|
|
7
9
|
resolutionDate: string; // ISO datetime, <= ahora
|
|
@@ -10,4 +12,6 @@ export class UpdateR27StatusRequest {
|
|
|
10
12
|
signedByName: string;
|
|
11
13
|
dictamenS3Key: string; // path en fiado-prod-data-lake
|
|
12
14
|
contentHash: string; // sha256:...
|
|
15
|
+
/** Opcional (backward compat). Sólo se persiste refundTransactionId si resolutionCause ∈ 706-709. */
|
|
16
|
+
refundInstruction?: RefundInstruction;
|
|
13
17
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* mismo valor numerico (101-104): r27Status es el nombre del contrato, mapeado
|
|
4
4
|
* internamente a disputeOrFraudStatus (vocabulario que ya lee la app).
|
|
5
5
|
*/
|
|
6
|
+
import { R27EventPayload } from './R27EventPayload';
|
|
7
|
+
|
|
6
8
|
export class UpdateR27StatusResponse {
|
|
7
9
|
success: boolean;
|
|
8
10
|
folio: string;
|
|
@@ -10,4 +12,6 @@ export class UpdateR27StatusResponse {
|
|
|
10
12
|
r27Status: number;
|
|
11
13
|
disputeOrFraudStatus: string;
|
|
12
14
|
updatedAt: string;
|
|
15
|
+
lastEvent?: R27EventPayload; // evento 102/104 recién agregado a statusHistory
|
|
16
|
+
refundTransactionId?: string; // sólo cierres procedentes con refund ligado
|
|
13
17
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Rol de quien ejecuta una transición R27 (`statusHistory[].actor.role`). Valores reales en DDB. */
|
|
2
|
+
export enum R27ActorRoleEnum {
|
|
3
|
+
CLIENT = "client",
|
|
4
|
+
OFICIAL_CUMPLIMIENTO = "oficial_cumplimiento",
|
|
5
|
+
TITULAR_UNE = "TitularUNE",
|
|
6
|
+
BACKOFFICE = "BACKOFFICE",
|
|
7
|
+
SYSTEM = "System",
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado R27 (CNBV) de una reclamación. Se persiste como string en
|
|
3
|
+
* `DisputeOrFraudLog.disputeOrFraudStatus` y en `statusHistory[].code`.
|
|
4
|
+
* 101 pendiente · 102 1er dictamen · 103 reapertura (máx 1) · 104 2° dictamen (terminal)
|
|
5
|
+
*/
|
|
6
|
+
export enum R27StatusEnum {
|
|
7
|
+
PENDING = "101",
|
|
8
|
+
RESOLVED = "102",
|
|
9
|
+
REOPENED = "103",
|
|
10
|
+
RESOLVED_AFTER_REOPEN = "104",
|
|
11
|
+
}
|
package/src/transaction/index.ts
CHANGED
|
@@ -3,6 +3,11 @@ export * from './dtos/CounterQueryResponse';
|
|
|
3
3
|
export * from './dtos/UpdateR27StatusRequest';
|
|
4
4
|
export * from './dtos/UpdateR27StatusResponse';
|
|
5
5
|
export * from './dtos/ReopenDisputeRequest';
|
|
6
|
+
export * from './dtos/ReopenDisputeResponse';
|
|
7
|
+
export * from './dtos/R27EventPayload';
|
|
8
|
+
export * from './dtos/RefundInstruction';
|
|
9
|
+
export * from './dtos/DisputeRefundSummary';
|
|
10
|
+
export * from './dtos/DisputeGetDetailResponse';
|
|
6
11
|
export * from './dtos/CreateDisputePrivateRequest';
|
|
7
12
|
export * from './dtos/TransactionCreateRequest';
|
|
8
13
|
export * from './dtos/TransactionCreateResponse';
|
|
@@ -41,6 +46,8 @@ export * from './enums/TransactionSourceEnum';
|
|
|
41
46
|
export * from './enums/TransactionStatusEnum';
|
|
42
47
|
export * from './enums/DisputeOrFraudEnum';
|
|
43
48
|
export * from './enums/DisputeOrFraudStatusEnum';
|
|
49
|
+
export * from './enums/R27StatusEnum';
|
|
50
|
+
export * from './enums/R27ActorRoleEnum';
|
|
44
51
|
export * from './enums/ActivityProblemStatusEnum';
|
|
45
52
|
export * from './enums/RefundChannelEnum';
|
|
46
53
|
export * from './enums/RefundPathTypeEnum';
|