@fiado/type-kit 3.240.0 → 3.241.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.
@@ -3,9 +3,24 @@ import { BeneficiaryRelationEnum } from '../enums/BeneficiaryRelationEnum';
3
3
  * Beneficiario capturado en el paso 10 (bienvenida N2). Se envía a `IAccountBeneficiaryApi.create`
4
4
  * (expediente wallet Fiado). El cliente puede NO dar beneficiario (opcional en régimen simplificado N1).
5
5
  * SureKeep Fase 2 — pista Retail.
6
+ *
7
+ * 2026-07-28 (aditivo, retrocompatible): el front captura nombre/apellidos POR SEPARADO y el esquema
8
+ * del expediente (`beneficiary-business`) EXIGE `paternalLastName` — con solo `fullName` la
9
+ * información se perdía justo antes de donde se necesita (400 BULK_GROUP_CREATION_FAILED). Los
10
+ * campos separados son opcionales: un caller viejo que mande solo `fullName` sigue validando, y el
11
+ * adapter del wizard degrada con heurística documentada (DEC-BENEF-001).
6
12
  */
7
13
  export declare class WizardBeneficiary {
8
14
  fullName: string;
15
+ /** Nombre(s) de pila, sin apellidos. Preferir SIEMPRE sobre partir `fullName`. */
16
+ firstName?: string;
17
+ /** Apellido paterno — el esquema del expediente wallet lo exige. */
18
+ paternalLastName?: string;
19
+ maternalLastName?: string;
20
+ /** Fecha de nacimiento ISO (YYYY-MM-DD). */
21
+ dateOfBirth?: string;
22
+ /** Teléfono del beneficiario (el front ofrece "mismo teléfono que el titular"). */
23
+ phoneNumber?: string;
9
24
  relation: BeneficiaryRelationEnum;
10
25
  /** Porcentaje de asignación (1-100). Si hay un solo beneficiario, típicamente 100. */
11
26
  percentage?: number;
@@ -17,6 +17,12 @@ const BeneficiaryRelationEnum_1 = require("../enums/BeneficiaryRelationEnum");
17
17
  * Beneficiario capturado en el paso 10 (bienvenida N2). Se envía a `IAccountBeneficiaryApi.create`
18
18
  * (expediente wallet Fiado). El cliente puede NO dar beneficiario (opcional en régimen simplificado N1).
19
19
  * SureKeep Fase 2 — pista Retail.
20
+ *
21
+ * 2026-07-28 (aditivo, retrocompatible): el front captura nombre/apellidos POR SEPARADO y el esquema
22
+ * del expediente (`beneficiary-business`) EXIGE `paternalLastName` — con solo `fullName` la
23
+ * información se perdía justo antes de donde se necesita (400 BULK_GROUP_CREATION_FAILED). Los
24
+ * campos separados son opcionales: un caller viejo que mande solo `fullName` sigue validando, y el
25
+ * adapter del wizard degrada con heurística documentada (DEC-BENEF-001).
20
26
  */
21
27
  class WizardBeneficiary {
22
28
  }
@@ -26,6 +32,36 @@ __decorate([
26
32
  (0, class_validator_1.IsString)(),
27
33
  __metadata("design:type", String)
28
34
  ], WizardBeneficiary.prototype, "fullName", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsString)(),
39
+ __metadata("design:type", String)
40
+ ], WizardBeneficiary.prototype, "firstName", void 0);
41
+ __decorate([
42
+ (0, class_transformer_1.Expose)(),
43
+ (0, class_validator_1.IsOptional)(),
44
+ (0, class_validator_1.IsString)(),
45
+ __metadata("design:type", String)
46
+ ], WizardBeneficiary.prototype, "paternalLastName", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_validator_1.IsString)(),
51
+ __metadata("design:type", String)
52
+ ], WizardBeneficiary.prototype, "maternalLastName", void 0);
53
+ __decorate([
54
+ (0, class_transformer_1.Expose)(),
55
+ (0, class_validator_1.IsOptional)(),
56
+ (0, class_validator_1.IsISO8601)(),
57
+ __metadata("design:type", String)
58
+ ], WizardBeneficiary.prototype, "dateOfBirth", void 0);
59
+ __decorate([
60
+ (0, class_transformer_1.Expose)(),
61
+ (0, class_validator_1.IsOptional)(),
62
+ (0, class_validator_1.IsString)(),
63
+ __metadata("design:type", String)
64
+ ], WizardBeneficiary.prototype, "phoneNumber", void 0);
29
65
  __decorate([
30
66
  (0, class_transformer_1.Expose)(),
31
67
  (0, class_validator_1.IsEnum)(BeneficiaryRelationEnum_1.BeneficiaryRelationEnum),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.240.0",
3
+ "version": "3.241.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,17 +1,52 @@
1
1
  import { Expose } from 'class-transformer';
2
- import { IsEnum, IsInt, IsOptional, IsString, Max, Min } from 'class-validator';
2
+ import { IsEnum, IsInt, IsISO8601, IsOptional, IsString, Max, Min } from 'class-validator';
3
3
  import { BeneficiaryRelationEnum } from '../enums/BeneficiaryRelationEnum';
4
4
 
5
5
  /**
6
6
  * Beneficiario capturado en el paso 10 (bienvenida N2). Se envía a `IAccountBeneficiaryApi.create`
7
7
  * (expediente wallet Fiado). El cliente puede NO dar beneficiario (opcional en régimen simplificado N1).
8
8
  * SureKeep Fase 2 — pista Retail.
9
+ *
10
+ * 2026-07-28 (aditivo, retrocompatible): el front captura nombre/apellidos POR SEPARADO y el esquema
11
+ * del expediente (`beneficiary-business`) EXIGE `paternalLastName` — con solo `fullName` la
12
+ * información se perdía justo antes de donde se necesita (400 BULK_GROUP_CREATION_FAILED). Los
13
+ * campos separados son opcionales: un caller viejo que mande solo `fullName` sigue validando, y el
14
+ * adapter del wizard degrada con heurística documentada (DEC-BENEF-001).
9
15
  */
10
16
  export class WizardBeneficiary {
11
17
  @Expose()
12
18
  @IsString()
13
19
  fullName!: string;
14
20
 
21
+ /** Nombre(s) de pila, sin apellidos. Preferir SIEMPRE sobre partir `fullName`. */
22
+ @Expose()
23
+ @IsOptional()
24
+ @IsString()
25
+ firstName?: string;
26
+
27
+ /** Apellido paterno — el esquema del expediente wallet lo exige. */
28
+ @Expose()
29
+ @IsOptional()
30
+ @IsString()
31
+ paternalLastName?: string;
32
+
33
+ @Expose()
34
+ @IsOptional()
35
+ @IsString()
36
+ maternalLastName?: string;
37
+
38
+ /** Fecha de nacimiento ISO (YYYY-MM-DD). */
39
+ @Expose()
40
+ @IsOptional()
41
+ @IsISO8601()
42
+ dateOfBirth?: string;
43
+
44
+ /** Teléfono del beneficiario (el front ofrece "mismo teléfono que el titular"). */
45
+ @Expose()
46
+ @IsOptional()
47
+ @IsString()
48
+ phoneNumber?: string;
49
+
15
50
  @Expose()
16
51
  @IsEnum(BeneficiaryRelationEnum)
17
52
  relation!: BeneficiaryRelationEnum;