@fiado/type-kit 3.160.0 → 3.162.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.
@@ -1,5 +1,4 @@
1
1
  import { CountryId } from '../../country/enums/CountryId';
2
- import { CashInFeeDto } from './CashInFeeDto';
3
2
  import { CashInNetworkEnum } from '../enums/CashInNetworkEnum';
4
3
  import { CashInProviderEnum } from '../enums/CashInProviderEnum';
5
4
  import { EstablishmentBrandEnum } from '../enums/EstablishmentBrandEnum';
@@ -15,7 +14,6 @@ export declare class EstablishmentDto {
15
14
  longitude: number;
16
15
  address: string;
17
16
  categories: string[];
18
- isOpen: boolean | null;
19
17
  /** epoch ms del último refresco desde HERE (UI "verificado hace X días") */
20
18
  lastRefreshed: number;
21
19
  /** true si la celda alcanzó el umbral de reportes de "no existe" */
@@ -25,8 +23,6 @@ export declare class EstablishmentDto {
25
23
  provider?: CashInProviderEnum;
26
24
  /** País del punto (USA | MEX). Redundante con `provider`; explícito para la UI. */
27
25
  country?: CountryId;
28
- /** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica (el fee es por brand). */
26
+ /** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica. */
29
27
  network?: CashInNetworkEnum;
30
- /** Comisión a mostrar (no se cobra acá). */
31
- fee?: CashInFeeDto;
32
28
  }
@@ -1,4 +1,3 @@
1
- export * from './dtos/CashInFeeDto';
2
1
  export * from './dtos/EstablishmentDto';
3
2
  export * from './dtos/GetNearbyPlacesRequest';
4
3
  export * from './dtos/GetNearbyPlacesResponse';
@@ -15,7 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  //dtos
18
- __exportStar(require("./dtos/CashInFeeDto"), exports);
19
18
  __exportStar(require("./dtos/EstablishmentDto"), exports);
20
19
  __exportStar(require("./dtos/GetNearbyPlacesRequest"), exports);
21
20
  __exportStar(require("./dtos/GetNearbyPlacesResponse"), exports);
@@ -14,4 +14,6 @@ export declare class RemittanceQuoteRequest {
14
14
  amount: number;
15
15
  /** "USD" si amount está en origen; ISO destino si está en moneda destino. */
16
16
  amountCurrency: string;
17
+ /** Fase B: código de promo tecleado en la app (habilita SOLO esa promo). Inerte hasta que la app lo mande. */
18
+ promoCode?: string;
17
19
  }
@@ -49,3 +49,9 @@ __decorate([
49
49
  (0, class_validator_1.IsIn)(["USD", "GTQ", "HNL", "MXN", "NIO"]),
50
50
  __metadata("design:type", String)
51
51
  ], RemittanceQuoteRequest.prototype, "amountCurrency", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.IsOptional)(),
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.Length)(3, 30),
56
+ __metadata("design:type", String)
57
+ ], RemittanceQuoteRequest.prototype, "promoCode", void 0);
@@ -27,12 +27,16 @@ export declare class CreateSegmentRequest {
27
27
  name: string;
28
28
  members: SegmentMember[];
29
29
  individuals: SegmentIndividual[];
30
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
31
+ priority?: number;
30
32
  }
31
33
  /** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
32
34
  export declare class UpdateSegmentRequest {
33
35
  name: string;
34
36
  members: SegmentMember[];
35
37
  individuals: SegmentIndividual[];
38
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
39
+ priority?: number;
36
40
  }
37
41
  /** Segmento completo (response). Métricas null = nunca calculadas. */
38
42
  export declare class Segment {
@@ -51,6 +55,8 @@ export declare class Segment {
51
55
  updatedAt: string;
52
56
  createdBy: string;
53
57
  updatedBy: string;
58
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
59
+ priority?: number;
54
60
  }
55
61
  /** Response de EP-22 GET /backoffice/config/segments. */
56
62
  export declare class SegmentListResponse {
@@ -75,6 +75,12 @@ __decorate([
75
75
  (0, class_transformer_1.Type)(() => SegmentIndividual),
76
76
  __metadata("design:type", Array)
77
77
  ], CreateSegmentRequest.prototype, "individuals", void 0);
78
+ __decorate([
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, class_validator_1.IsInt)(),
81
+ (0, class_validator_1.Min)(0),
82
+ __metadata("design:type", Number)
83
+ ], CreateSegmentRequest.prototype, "priority", void 0);
78
84
  /** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
79
85
  class UpdateSegmentRequest {
80
86
  }
@@ -96,6 +102,12 @@ __decorate([
96
102
  (0, class_transformer_1.Type)(() => SegmentIndividual),
97
103
  __metadata("design:type", Array)
98
104
  ], UpdateSegmentRequest.prototype, "individuals", void 0);
105
+ __decorate([
106
+ (0, class_validator_1.IsOptional)(),
107
+ (0, class_validator_1.IsInt)(),
108
+ (0, class_validator_1.Min)(0),
109
+ __metadata("design:type", Number)
110
+ ], UpdateSegmentRequest.prototype, "priority", void 0);
99
111
  /** Segmento completo (response). Métricas null = nunca calculadas. */
100
112
  class Segment {
101
113
  }
@@ -6,4 +6,6 @@ export declare class RemittanceSendPreviewRequest {
6
6
  beneficiaryId: string;
7
7
  amount: number;
8
8
  amountCurrency: string;
9
+ /** Fase B: código de promo tecleado en la app (habilita SOLO esa promo). Inerte hasta que la app lo mande. */
10
+ promoCode?: string;
9
11
  }
@@ -32,3 +32,9 @@ __decorate([
32
32
  (0, class_validator_1.IsIn)(["USD", "GTQ", "HNL", "MXN", "NIO"]),
33
33
  __metadata("design:type", String)
34
34
  ], RemittanceSendPreviewRequest.prototype, "amountCurrency", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.Length)(3, 30),
39
+ __metadata("design:type", String)
40
+ ], RemittanceSendPreviewRequest.prototype, "promoCode", void 0);
@@ -0,0 +1,9 @@
1
+ import { CohortCondition } from "../RemittanceCohort";
2
+ /** Evalúa las condiciones (AND) de un cohort para UN usuario (send-time, Fase B). */
3
+ export declare class CohortUserMatchRequest {
4
+ directoryId: string;
5
+ conditions: CohortCondition[];
6
+ }
7
+ export declare class CohortUserMatchResponse {
8
+ matches: boolean;
9
+ }
@@ -0,0 +1,33 @@
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.CohortUserMatchResponse = exports.CohortUserMatchRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const RemittanceCohort_1 = require("../RemittanceCohort");
16
+ /** Evalúa las condiciones (AND) de un cohort para UN usuario (send-time, Fase B). */
17
+ class CohortUserMatchRequest {
18
+ }
19
+ exports.CohortUserMatchRequest = CohortUserMatchRequest;
20
+ __decorate([
21
+ (0, class_validator_1.IsUUID)(),
22
+ __metadata("design:type", String)
23
+ ], CohortUserMatchRequest.prototype, "directoryId", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsArray)(),
26
+ (0, class_validator_1.ArrayNotEmpty)(),
27
+ (0, class_validator_1.ValidateNested)({ each: true }),
28
+ (0, class_transformer_1.Type)(() => RemittanceCohort_1.CohortCondition),
29
+ __metadata("design:type", Array)
30
+ ], CohortUserMatchRequest.prototype, "conditions", void 0);
31
+ class CohortUserMatchResponse {
32
+ }
33
+ exports.CohortUserMatchResponse = CohortUserMatchResponse;
@@ -0,0 +1,33 @@
1
+ import { RemittanceCorridor } from "../../enums/RemittanceCorridor";
2
+ /**
3
+ * Request del resolver de send-time (Fase B). El connector lo llama por cada
4
+ * quote/preview/pay. `code` = promo tecleada por el cliente en la app (opcional).
5
+ */
6
+ export declare class PricingResolveRequest {
7
+ directoryId: string;
8
+ corridor: RemittanceCorridor;
9
+ amountUSD: number;
10
+ code?: string;
11
+ }
12
+ /** Regla BLOCK que rechazó la tx (VALIDATION o TX_AMOUNT con acción BLOCK). */
13
+ export declare class PricingResolveBlocked {
14
+ ruleId: string;
15
+ ruleName: string;
16
+ message: string;
17
+ }
18
+ /**
19
+ * Respuesta del resolver. `markupBps`/`serviceFee` = valores FINALES tras todas las
20
+ * capas (markupBps puede ser negativo = subsidio). Si `blocked` viene, el connector
21
+ * rechaza la tx y NO llama a UNIR.
22
+ */
23
+ export declare class PricingResolveResponse {
24
+ segmentId: string;
25
+ segmentName: string;
26
+ markupBps: number;
27
+ serviceFee: number;
28
+ appliedPromoIds: string[];
29
+ appliedRuleIds: string[];
30
+ /** true si no había combinación (se usó Estándar del corridor o markup 0 + fee 0). */
31
+ fallback: boolean;
32
+ blocked?: PricingResolveBlocked;
33
+ }
@@ -0,0 +1,52 @@
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.PricingResolveResponse = exports.PricingResolveBlocked = exports.PricingResolveRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const RemittanceCorridor_1 = require("../../enums/RemittanceCorridor");
15
+ /**
16
+ * Request del resolver de send-time (Fase B). El connector lo llama por cada
17
+ * quote/preview/pay. `code` = promo tecleada por el cliente en la app (opcional).
18
+ */
19
+ class PricingResolveRequest {
20
+ }
21
+ exports.PricingResolveRequest = PricingResolveRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsUUID)(),
24
+ __metadata("design:type", String)
25
+ ], PricingResolveRequest.prototype, "directoryId", void 0);
26
+ __decorate([
27
+ (0, class_validator_1.IsEnum)(RemittanceCorridor_1.RemittanceCorridor),
28
+ __metadata("design:type", String)
29
+ ], PricingResolveRequest.prototype, "corridor", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsNumber)({ maxDecimalPlaces: 2 }),
32
+ (0, class_validator_1.Min)(1),
33
+ __metadata("design:type", Number)
34
+ ], PricingResolveRequest.prototype, "amountUSD", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.Length)(3, 30),
39
+ __metadata("design:type", String)
40
+ ], PricingResolveRequest.prototype, "code", void 0);
41
+ /** Regla BLOCK que rechazó la tx (VALIDATION o TX_AMOUNT con acción BLOCK). */
42
+ class PricingResolveBlocked {
43
+ }
44
+ exports.PricingResolveBlocked = PricingResolveBlocked;
45
+ /**
46
+ * Respuesta del resolver. `markupBps`/`serviceFee` = valores FINALES tras todas las
47
+ * capas (markupBps puede ser negativo = subsidio). Si `blocked` viene, el connector
48
+ * rechaza la tx y NO llama a UNIR.
49
+ */
50
+ class PricingResolveResponse {
51
+ }
52
+ exports.PricingResolveResponse = PricingResolveResponse;
@@ -6,3 +6,5 @@ export * from "./dtos/internal/RemittanceCohortCount";
6
6
  export * from "./dtos/internal/RemittanceSegmentMetrics";
7
7
  export * from "./dtos/internal/RemittancePricingBridge";
8
8
  export * from "./dtos/internal/RemittancePromotionReach";
9
+ export * from "./dtos/internal/RemittancePricingResolve";
10
+ export * from "./dtos/internal/RemittanceCohortUserMatch";
@@ -24,3 +24,5 @@ __exportStar(require("./dtos/internal/RemittanceCohortCount"), exports);
24
24
  __exportStar(require("./dtos/internal/RemittanceSegmentMetrics"), exports);
25
25
  __exportStar(require("./dtos/internal/RemittancePricingBridge"), exports);
26
26
  __exportStar(require("./dtos/internal/RemittancePromotionReach"), exports);
27
+ __exportStar(require("./dtos/internal/RemittancePricingResolve"), exports);
28
+ __exportStar(require("./dtos/internal/RemittanceCohortUserMatch"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.160.0",
3
+ "version": "3.162.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,5 +1,4 @@
1
1
  import { CountryId } from '../../country/enums/CountryId';
2
- import { CashInFeeDto } from './CashInFeeDto';
3
2
  import { CashInNetworkEnum } from '../enums/CashInNetworkEnum';
4
3
  import { CashInProviderEnum } from '../enums/CashInProviderEnum';
5
4
  import { EstablishmentBrandEnum } from '../enums/EstablishmentBrandEnum';
@@ -16,7 +15,6 @@ export class EstablishmentDto {
16
15
  longitude: number;
17
16
  address: string;
18
17
  categories: string[];
19
- isOpen: boolean | null;
20
18
  /** epoch ms del último refresco desde HERE (UI "verificado hace X días") */
21
19
  lastRefreshed: number;
22
20
  /** true si la celda alcanzó el umbral de reportes de "no existe" */
@@ -27,8 +25,6 @@ export class EstablishmentDto {
27
25
  provider?: CashInProviderEnum;
28
26
  /** País del punto (USA | MEX). Redundante con `provider`; explícito para la UI. */
29
27
  country?: CountryId;
30
- /** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica (el fee es por brand). */
28
+ /** Red Passport (OXXO/SUPERMERCADO/TIENDITA). En US no aplica. */
31
29
  network?: CashInNetworkEnum;
32
- /** Comisión a mostrar (no se cobra acá). */
33
- fee?: CashInFeeDto;
34
30
  }
@@ -1,5 +1,4 @@
1
1
  //dtos
2
- export * from './dtos/CashInFeeDto';
3
2
  export * from './dtos/EstablishmentDto';
4
3
  export * from './dtos/GetNearbyPlacesRequest';
5
4
  export * from './dtos/GetNearbyPlacesResponse';
@@ -1,4 +1,4 @@
1
- import { IsEnum, IsIn, IsNotEmpty, IsNumber, IsString, Min } from "class-validator";
1
+ import { IsEnum, IsIn, IsNotEmpty, IsNumber, IsOptional, IsString, Length, Min } from "class-validator";
2
2
  import { ReceptionMethod } from "../enums/ReceptionMethod";
3
3
  import { RemittanceCountryISO } from "../enums/RemittanceCountryISO";
4
4
 
@@ -30,4 +30,10 @@ export class RemittanceQuoteRequest {
30
30
  /** "USD" si amount está en origen; ISO destino si está en moneda destino. */
31
31
  @IsIn(["USD", "GTQ", "HNL", "MXN", "NIO"])
32
32
  amountCurrency!: string;
33
+
34
+ /** Fase B: código de promo tecleado en la app (habilita SOLO esa promo). Inerte hasta que la app lo mande. */
35
+ @IsOptional()
36
+ @IsString()
37
+ @Length(3, 30)
38
+ promoCode?: string;
33
39
  }
@@ -2,10 +2,12 @@ import { Type } from "class-transformer";
2
2
  import {
3
3
  IsArray,
4
4
  IsEnum,
5
+ IsInt,
5
6
  IsOptional,
6
7
  IsString,
7
8
  IsUUID,
8
9
  Length,
10
+ Min,
9
11
  ValidateNested,
10
12
  } from "class-validator";
11
13
  import { SegmentMemberType } from "../enums/SegmentMemberType";
@@ -62,6 +64,12 @@ export class CreateSegmentRequest {
62
64
  @ValidateNested({ each: true })
63
65
  @Type(() => SegmentIndividual)
64
66
  individuals!: SegmentIndividual[];
67
+
68
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
69
+ @IsOptional()
70
+ @IsInt()
71
+ @Min(0)
72
+ priority?: number;
65
73
  }
66
74
 
67
75
  /** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
@@ -79,6 +87,12 @@ export class UpdateSegmentRequest {
79
87
  @ValidateNested({ each: true })
80
88
  @Type(() => SegmentIndividual)
81
89
  individuals!: SegmentIndividual[];
90
+
91
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
92
+ @IsOptional()
93
+ @IsInt()
94
+ @Min(0)
95
+ priority?: number;
82
96
  }
83
97
 
84
98
  /** Segmento completo (response). Métricas null = nunca calculadas. */
@@ -98,6 +112,8 @@ export class Segment {
98
112
  updatedAt!: string;
99
113
  createdBy!: string;
100
114
  updatedBy!: string;
115
+ /** Precedencia en send-time (D-PB-1): mayor gana; empate → nombre; ESTANDAR siempre piso. Ausente = 0. */
116
+ priority?: number;
101
117
  }
102
118
 
103
119
  /** Response de EP-22 GET /backoffice/config/segments. */
@@ -1,4 +1,4 @@
1
- import { IsIn, IsNotEmpty, IsNumber, IsString, Min } from "class-validator";
1
+ import { IsIn, IsNotEmpty, IsNumber, IsOptional, IsString, Length, Min } from "class-validator";
2
2
 
3
3
  /**
4
4
  * Preview formal antes del confirm. Bajo API Lite no incluye fundingMethod —
@@ -15,4 +15,10 @@ export class RemittanceSendPreviewRequest {
15
15
 
16
16
  @IsIn(["USD", "GTQ", "HNL", "MXN", "NIO"])
17
17
  amountCurrency!: string;
18
+
19
+ /** Fase B: código de promo tecleado en la app (habilita SOLO esa promo). Inerte hasta que la app lo mande. */
20
+ @IsOptional()
21
+ @IsString()
22
+ @Length(3, 30)
23
+ promoCode?: string;
18
24
  }
@@ -0,0 +1,19 @@
1
+ import { ArrayNotEmpty, IsArray, IsUUID, ValidateNested } from "class-validator";
2
+ import { Type } from "class-transformer";
3
+ import { CohortCondition } from "../RemittanceCohort";
4
+
5
+ /** Evalúa las condiciones (AND) de un cohort para UN usuario (send-time, Fase B). */
6
+ export class CohortUserMatchRequest {
7
+ @IsUUID()
8
+ directoryId!: string;
9
+
10
+ @IsArray()
11
+ @ArrayNotEmpty()
12
+ @ValidateNested({ each: true })
13
+ @Type(() => CohortCondition)
14
+ conditions!: CohortCondition[];
15
+ }
16
+
17
+ export class CohortUserMatchResponse {
18
+ matches!: boolean;
19
+ }
@@ -0,0 +1,47 @@
1
+ import { IsEnum, IsNumber, IsOptional, IsString, IsUUID, Length, Min } from "class-validator";
2
+ import { RemittanceCorridor } from "../../enums/RemittanceCorridor";
3
+
4
+ /**
5
+ * Request del resolver de send-time (Fase B). El connector lo llama por cada
6
+ * quote/preview/pay. `code` = promo tecleada por el cliente en la app (opcional).
7
+ */
8
+ export class PricingResolveRequest {
9
+ @IsUUID()
10
+ directoryId!: string;
11
+
12
+ @IsEnum(RemittanceCorridor)
13
+ corridor!: RemittanceCorridor;
14
+
15
+ @IsNumber({ maxDecimalPlaces: 2 })
16
+ @Min(1)
17
+ amountUSD!: number;
18
+
19
+ @IsOptional()
20
+ @IsString()
21
+ @Length(3, 30)
22
+ code?: string;
23
+ }
24
+
25
+ /** Regla BLOCK que rechazó la tx (VALIDATION o TX_AMOUNT con acción BLOCK). */
26
+ export class PricingResolveBlocked {
27
+ ruleId!: string;
28
+ ruleName!: string;
29
+ message!: string;
30
+ }
31
+
32
+ /**
33
+ * Respuesta del resolver. `markupBps`/`serviceFee` = valores FINALES tras todas las
34
+ * capas (markupBps puede ser negativo = subsidio). Si `blocked` viene, el connector
35
+ * rechaza la tx y NO llama a UNIR.
36
+ */
37
+ export class PricingResolveResponse {
38
+ segmentId!: string;
39
+ segmentName!: string;
40
+ markupBps!: number;
41
+ serviceFee!: number;
42
+ appliedPromoIds!: string[];
43
+ appliedRuleIds!: string[];
44
+ /** true si no había combinación (se usó Estándar del corridor o markup 0 + fee 0). */
45
+ fallback!: boolean;
46
+ blocked?: PricingResolveBlocked;
47
+ }
@@ -8,3 +8,5 @@ export * from "./dtos/internal/RemittanceCohortCount";
8
8
  export * from "./dtos/internal/RemittanceSegmentMetrics";
9
9
  export * from "./dtos/internal/RemittancePricingBridge";
10
10
  export * from "./dtos/internal/RemittancePromotionReach";
11
+ export * from "./dtos/internal/RemittancePricingResolve";
12
+ export * from "./dtos/internal/RemittanceCohortUserMatch";
@@ -1,18 +0,0 @@
1
- import { CurrencyId } from '../../currency/enums/CurrencyId';
2
-
3
- /**
4
- * Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
5
- * - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
6
- * - Passport (MX): por red → `fixed` + `percentage`.
7
- * Response DTO — sin decoradores de validación.
8
- */
9
- export class CashInFeeDto {
10
- /** Comisión fija, en la moneda del país. */
11
- fixed?: number;
12
- /** Porcentaje del monto depositado (0–100). */
13
- percentage?: number;
14
- /** Tope máximo de comisión (GreenDot: el asociado cobra hasta este cap). */
15
- cap?: number;
16
- /** Moneda del fee: USD (GreenDot) | MXN (Passport). */
17
- currency: CurrencyId;
18
- }