@fiado/type-kit 3.381.0 → 3.382.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,6 @@
1
1
  import { MechanismType } from '../enums/MechanismType';
2
2
  import { CurrencyId } from '../../currency/enums/CurrencyId';
3
+ import { CollectionPricingDto } from './CollectionPricingDto';
3
4
  export declare class AuthorizeCollectionMovementRequest {
4
5
  executionId: string;
5
6
  directoryId: string;
@@ -10,4 +11,11 @@ export declare class AuthorizeCollectionMovementRequest {
10
11
  intentId?: string;
11
12
  chargeId?: string;
12
13
  holdTxId?: string;
14
+ /**
15
+ * Tarifa con la que se registra el cobro. Presente, el movimiento deja además una transacción
16
+ * Fiado: asiento contable, historial visible para el cliente y comisión declarada. Ausente, el
17
+ * dinero se mueve igual pero sin ese registro — es el comportamiento anterior, y se conserva para
18
+ * no romper a quien todavía no manda tarifa.
19
+ */
20
+ pricing?: CollectionPricingDto;
13
21
  }
@@ -11,8 +11,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AuthorizeCollectionMovementRequest = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
14
15
  const MechanismType_1 = require("../enums/MechanismType");
15
16
  const CurrencyId_1 = require("../../currency/enums/CurrencyId");
17
+ const CollectionPricingDto_1 = require("./CollectionPricingDto");
16
18
  class AuthorizeCollectionMovementRequest {
17
19
  }
18
20
  exports.AuthorizeCollectionMovementRequest = AuthorizeCollectionMovementRequest;
@@ -55,3 +57,9 @@ __decorate([
55
57
  (0, class_validator_1.IsString)(),
56
58
  __metadata("design:type", String)
57
59
  ], AuthorizeCollectionMovementRequest.prototype, "holdTxId", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsOptional)(),
62
+ (0, class_validator_1.ValidateNested)(),
63
+ (0, class_transformer_1.Type)(() => CollectionPricingDto_1.CollectionPricingDto),
64
+ __metadata("design:type", CollectionPricingDto_1.CollectionPricingDto)
65
+ ], AuthorizeCollectionMovementRequest.prototype, "pricing", void 0);
@@ -0,0 +1,28 @@
1
+ import { ProductTaxFeeTypeEnum } from '../../productCatalog';
2
+ import { CollectionFeeMode } from '../enums/CollectionFeeMode';
3
+ /**
4
+ * Tarifa de un cobro, tal como la manda quien lo pide.
5
+ *
6
+ * La regla viaja aquí y no sale del catálogo de productos porque quien conoce las condiciones
7
+ * comerciales de una cartera es el dominio dueño de la deuda, no el procesador: la misma mecánica de
8
+ * cobro se tarifa distinto según el producto, el tenant o el convenio.
9
+ *
10
+ * Viaja la REGLA, no el importe ya calculado. Así la aritmética y el redondeo son los mismos que los
11
+ * del resto de las transacciones, en vez de que cada dominio reimplemente los suyos y los números
12
+ * dejen de cuadrar entre sí.
13
+ */
14
+ export declare class CollectionPricingDto {
15
+ /**
16
+ * Fila de `ProductCatalog_GT` con la que se clasifica la transacción resultante — de ahí salen su
17
+ * tipo y subtipo. La tarifa NO sale de ahí: sale de los campos de abajo.
18
+ */
19
+ productCatalogId: string;
20
+ /** Comisión: porcentaje sobre el monto, o importe fijo, según `feeType`. */
21
+ fee: number;
22
+ feeType: ProductTaxFeeTypeEnum;
23
+ /** Impuesto: porcentaje SOBRE LA COMISIÓN, o importe fijo, según `taxType`. */
24
+ tax: number;
25
+ taxType: ProductTaxFeeTypeEnum;
26
+ /** Quién absorbe la comisión: el cliente por encima de su deuda, o el destino al recibir menos. */
27
+ feeMode: CollectionFeeMode;
28
+ }
@@ -0,0 +1,55 @@
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.CollectionPricingDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const productCatalog_1 = require("../../productCatalog");
15
+ const CollectionFeeMode_1 = require("../enums/CollectionFeeMode");
16
+ /**
17
+ * Tarifa de un cobro, tal como la manda quien lo pide.
18
+ *
19
+ * La regla viaja aquí y no sale del catálogo de productos porque quien conoce las condiciones
20
+ * comerciales de una cartera es el dominio dueño de la deuda, no el procesador: la misma mecánica de
21
+ * cobro se tarifa distinto según el producto, el tenant o el convenio.
22
+ *
23
+ * Viaja la REGLA, no el importe ya calculado. Así la aritmética y el redondeo son los mismos que los
24
+ * del resto de las transacciones, en vez de que cada dominio reimplemente los suyos y los números
25
+ * dejen de cuadrar entre sí.
26
+ */
27
+ class CollectionPricingDto {
28
+ }
29
+ exports.CollectionPricingDto = CollectionPricingDto;
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ __metadata("design:type", String)
33
+ ], CollectionPricingDto.prototype, "productCatalogId", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsNumber)(),
36
+ (0, class_validator_1.Min)(0),
37
+ __metadata("design:type", Number)
38
+ ], CollectionPricingDto.prototype, "fee", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsEnum)(productCatalog_1.ProductTaxFeeTypeEnum),
41
+ __metadata("design:type", String)
42
+ ], CollectionPricingDto.prototype, "feeType", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsNumber)(),
45
+ (0, class_validator_1.Min)(0),
46
+ __metadata("design:type", Number)
47
+ ], CollectionPricingDto.prototype, "tax", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsEnum)(productCatalog_1.ProductTaxFeeTypeEnum),
50
+ __metadata("design:type", String)
51
+ ], CollectionPricingDto.prototype, "taxType", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.IsEnum)(CollectionFeeMode_1.CollectionFeeMode),
54
+ __metadata("design:type", String)
55
+ ], CollectionPricingDto.prototype, "feeMode", void 0);
@@ -0,0 +1,6 @@
1
+ export declare enum CollectionFeeMode {
2
+ /** El cliente paga la deuda MÁS la comisión: se le debita `monto + fee + IVA`. */
3
+ ON_TOP = "ON_TOP",
4
+ /** El cliente paga sólo la deuda: se le debita el monto, y la comisión se retiene de lo que se remite. */
5
+ RETAINED = "RETAINED"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CollectionFeeMode = void 0;
4
+ var CollectionFeeMode;
5
+ (function (CollectionFeeMode) {
6
+ /** El cliente paga la deuda MÁS la comisión: se le debita `monto + fee + IVA`. */
7
+ CollectionFeeMode["ON_TOP"] = "ON_TOP";
8
+ /** El cliente paga sólo la deuda: se le debita el monto, y la comisión se retiene de lo que se remite. */
9
+ CollectionFeeMode["RETAINED"] = "RETAINED";
10
+ })(CollectionFeeMode || (exports.CollectionFeeMode = CollectionFeeMode = {}));
@@ -4,6 +4,7 @@ export * from './enums/SagaStep';
4
4
  export * from './enums/CollectionResultStatus';
5
5
  export * from './enums/DeregisterChargeStatus';
6
6
  export * from './enums/RegisterCollectibleStatus';
7
+ export * from './enums/CollectionFeeMode';
7
8
  export * from './dtos/PendingChargeDto';
8
9
  export * from './dtos/CollectRequest';
9
10
  export * from './dtos/CollectResponse';
@@ -18,6 +19,7 @@ export * from './dtos/UpsertProductConfigRequest';
18
19
  export * from './dtos/ApplyCollectionResultRequest';
19
20
  export * from './dtos/DeregisterChargeResponse';
20
21
  export * from './dtos/RegisterCollectibleResponse';
22
+ export * from './dtos/CollectionPricingDto';
21
23
  export * from './dtos/ResolvePendingChargesRequest';
22
24
  export * from './dtos/MoneyInEvent';
23
25
  export * from './dtos/CollectionIntentSummaryDto';
@@ -21,6 +21,7 @@ __exportStar(require("./enums/SagaStep"), exports);
21
21
  __exportStar(require("./enums/CollectionResultStatus"), exports);
22
22
  __exportStar(require("./enums/DeregisterChargeStatus"), exports);
23
23
  __exportStar(require("./enums/RegisterCollectibleStatus"), exports);
24
+ __exportStar(require("./enums/CollectionFeeMode"), exports);
24
25
  // DTOs
25
26
  __exportStar(require("./dtos/PendingChargeDto"), exports);
26
27
  __exportStar(require("./dtos/CollectRequest"), exports);
@@ -36,6 +37,7 @@ __exportStar(require("./dtos/UpsertProductConfigRequest"), exports);
36
37
  __exportStar(require("./dtos/ApplyCollectionResultRequest"), exports);
37
38
  __exportStar(require("./dtos/DeregisterChargeResponse"), exports);
38
39
  __exportStar(require("./dtos/RegisterCollectibleResponse"), exports);
40
+ __exportStar(require("./dtos/CollectionPricingDto"), exports);
39
41
  __exportStar(require("./dtos/ResolvePendingChargesRequest"), exports);
40
42
  __exportStar(require("./dtos/MoneyInEvent"), exports);
41
43
  // DTOs — backoffice de monitoreo
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.381.0",
3
+ "version": "3.382.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,6 +1,8 @@
1
- import { IsString, IsInt, IsEnum, IsOptional } from 'class-validator';
1
+ import { IsString, IsInt, IsEnum, IsOptional, ValidateNested } from 'class-validator';
2
+ import { Type } from 'class-transformer';
2
3
  import { MechanismType } from '../enums/MechanismType';
3
4
  import { CurrencyId } from '../../currency/enums/CurrencyId';
5
+ import { CollectionPricingDto } from './CollectionPricingDto';
4
6
 
5
7
  export class AuthorizeCollectionMovementRequest {
6
8
  @IsString() executionId!: string; // idempotencia (@IdempotencyController)
@@ -12,4 +14,12 @@ export class AuthorizeCollectionMovementRequest {
12
14
  @IsOptional() @IsString() intentId?: string;
13
15
  @IsOptional() @IsString() chargeId?: string;
14
16
  @IsOptional() @IsString() holdTxId?: string;
17
+
18
+ /**
19
+ * Tarifa con la que se registra el cobro. Presente, el movimiento deja además una transacción
20
+ * Fiado: asiento contable, historial visible para el cliente y comisión declarada. Ausente, el
21
+ * dinero se mueve igual pero sin ese registro — es el comportamiento anterior, y se conserva para
22
+ * no romper a quien todavía no manda tarifa.
23
+ */
24
+ @IsOptional() @ValidateNested() @Type(() => CollectionPricingDto) pricing?: CollectionPricingDto;
15
25
  }
@@ -0,0 +1,35 @@
1
+ import { IsEnum, IsNumber, IsString, Min } from 'class-validator';
2
+ import { ProductTaxFeeTypeEnum } from '../../productCatalog';
3
+ import { CollectionFeeMode } from '../enums/CollectionFeeMode';
4
+
5
+ /**
6
+ * Tarifa de un cobro, tal como la manda quien lo pide.
7
+ *
8
+ * La regla viaja aquí y no sale del catálogo de productos porque quien conoce las condiciones
9
+ * comerciales de una cartera es el dominio dueño de la deuda, no el procesador: la misma mecánica de
10
+ * cobro se tarifa distinto según el producto, el tenant o el convenio.
11
+ *
12
+ * Viaja la REGLA, no el importe ya calculado. Así la aritmética y el redondeo son los mismos que los
13
+ * del resto de las transacciones, en vez de que cada dominio reimplemente los suyos y los números
14
+ * dejen de cuadrar entre sí.
15
+ */
16
+ export class CollectionPricingDto {
17
+ /**
18
+ * Fila de `ProductCatalog_GT` con la que se clasifica la transacción resultante — de ahí salen su
19
+ * tipo y subtipo. La tarifa NO sale de ahí: sale de los campos de abajo.
20
+ */
21
+ @IsString() productCatalogId!: string;
22
+
23
+ /** Comisión: porcentaje sobre el monto, o importe fijo, según `feeType`. */
24
+ @IsNumber() @Min(0) fee!: number;
25
+
26
+ @IsEnum(ProductTaxFeeTypeEnum) feeType!: ProductTaxFeeTypeEnum;
27
+
28
+ /** Impuesto: porcentaje SOBRE LA COMISIÓN, o importe fijo, según `taxType`. */
29
+ @IsNumber() @Min(0) tax!: number;
30
+
31
+ @IsEnum(ProductTaxFeeTypeEnum) taxType!: ProductTaxFeeTypeEnum;
32
+
33
+ /** Quién absorbe la comisión: el cliente por encima de su deuda, o el destino al recibir menos. */
34
+ @IsEnum(CollectionFeeMode) feeMode!: CollectionFeeMode;
35
+ }
@@ -0,0 +1,6 @@
1
+ export enum CollectionFeeMode {
2
+ /** El cliente paga la deuda MÁS la comisión: se le debita `monto + fee + IVA`. */
3
+ ON_TOP = 'ON_TOP',
4
+ /** El cliente paga sólo la deuda: se le debita el monto, y la comisión se retiene de lo que se remite. */
5
+ RETAINED = 'RETAINED',
6
+ }
@@ -5,6 +5,7 @@ export * from './enums/SagaStep';
5
5
  export * from './enums/CollectionResultStatus';
6
6
  export * from './enums/DeregisterChargeStatus';
7
7
  export * from './enums/RegisterCollectibleStatus';
8
+ export * from './enums/CollectionFeeMode';
8
9
 
9
10
  // DTOs
10
11
  export * from './dtos/PendingChargeDto';
@@ -21,6 +22,7 @@ export * from './dtos/UpsertProductConfigRequest';
21
22
  export * from './dtos/ApplyCollectionResultRequest';
22
23
  export * from './dtos/DeregisterChargeResponse';
23
24
  export * from './dtos/RegisterCollectibleResponse';
25
+ export * from './dtos/CollectionPricingDto';
24
26
  export * from './dtos/ResolvePendingChargesRequest';
25
27
  export * from './dtos/MoneyInEvent';
26
28