@fiado/type-kit 3.35.0 → 3.37.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.
@@ -17,4 +17,10 @@ export interface BackofficeLeafFacetsResponse {
17
17
  subcategoriesByCategory: {
18
18
  [category: string]: string[];
19
19
  };
20
+ /**
21
+ * Países destino distintos observados en el catálogo (códigos ISO numéricos,
22
+ * ordenados). El front arma el dropdown de filtro por país; el mapeo
23
+ * code→nombre/bandera es responsabilidad del front.
24
+ */
25
+ countries: string[];
20
26
  }
@@ -18,6 +18,7 @@ export interface BackofficeLeafListItem {
18
18
  updatedAt: number;
19
19
  provider: Provider;
20
20
  currency: string;
21
+ countryId: string;
21
22
  serviceOrder: number;
22
23
  subcategoryOrder: number;
23
24
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
3
+ *
4
+ * Aplica `order` como `subcategoryOrder` a los leaves de esa
5
+ * (category, subcategory) EN el país indicado (`countryId`). Normaliza el valor
6
+ * en el grupo de ese país de una sola llamada. El orden de una subcategoría es
7
+ * per-país (TELCEL puede ir distinto en MX vs CO).
8
+ */
9
+ export declare class BackofficeSubcategoryOrderUpdateRequest {
10
+ order: number;
11
+ /** Código ISO numérico del país destino cuyo orden se ajusta (ej. "484"). */
12
+ countryId: string;
13
+ }
@@ -0,0 +1,34 @@
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.BackofficeSubcategoryOrderUpdateRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
16
+ *
17
+ * Aplica `order` como `subcategoryOrder` a los leaves de esa
18
+ * (category, subcategory) EN el país indicado (`countryId`). Normaliza el valor
19
+ * en el grupo de ese país de una sola llamada. El orden de una subcategoría es
20
+ * per-país (TELCEL puede ir distinto en MX vs CO).
21
+ */
22
+ class BackofficeSubcategoryOrderUpdateRequest {
23
+ }
24
+ exports.BackofficeSubcategoryOrderUpdateRequest = BackofficeSubcategoryOrderUpdateRequest;
25
+ __decorate([
26
+ (0, class_validator_1.IsInt)(),
27
+ (0, class_validator_1.Min)(0),
28
+ __metadata("design:type", Number)
29
+ ], BackofficeSubcategoryOrderUpdateRequest.prototype, "order", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.IsNotEmpty)(),
33
+ __metadata("design:type", String)
34
+ ], BackofficeSubcategoryOrderUpdateRequest.prototype, "countryId", void 0);
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Una subcategoría con su orden canónico y cuántos leaves agrupa.
3
+ * `order` = min(subcategoryOrder) entre los leaves del grupo (hasta que un
4
+ * bulk PUT los normalice a un único valor).
5
+ */
6
+ export interface SubcategoryOrderItem {
7
+ subcategory: string;
8
+ order: number;
9
+ leafCount: number;
10
+ }
11
+ /**
12
+ * Respuesta de GET /backoffice/leaves/subcategory-orders.
13
+ *
14
+ * Alimenta la pantalla de "Ordenamiento de subcategorías" del backoffice.
15
+ * Estructura POR PAÍS: el orden de una subcategoría depende del país destino
16
+ * (ej. TELCEL puede ir 1º en MX y último en CO). Cada subcategoría aparece una
17
+ * vez por cada país donde opera.
18
+ *
19
+ * Forma: `byCountry[countryId][category]` = subcategorías de esa categoría EN ese
20
+ * país, ordenadas por `order` ASC (alfabético como desempate). `order` =
21
+ * min(subcategoryOrder) entre los leaves de `(country, category, subcategory)`.
22
+ *
23
+ * `countryId` es el código ISO numérico (el front mapea a nombre/bandera).
24
+ * `leafCount` incluye leaves deshabilitados (se ordena el árbol completo).
25
+ */
26
+ export interface BackofficeSubcategoryOrdersResponse {
27
+ byCountry: {
28
+ [countryId: string]: {
29
+ [category: string]: SubcategoryOrderItem[];
30
+ };
31
+ };
32
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Body de PUT /backoffice/leaves/categories/{category}/countries/{countryId}/subcategory-orders.
3
+ *
4
+ * Reordenamiento bulk para drag-and-drop: el front manda la lista COMPLETA de
5
+ * subcategorías de la categoría (para ese país) en el orden deseado. El backend
6
+ * asigna `subcategoryOrder = índice+1` a los leaves de cada subcategoría EN ese
7
+ * país, en una sola llamada.
8
+ */
9
+ export declare class BackofficeSubcategoryReorderRequest {
10
+ /** Subcategorías en el orden final deseado (posición 1..N por índice). */
11
+ orders: string[];
12
+ }
@@ -0,0 +1,30 @@
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.BackofficeSubcategoryReorderRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Body de PUT /backoffice/leaves/categories/{category}/countries/{countryId}/subcategory-orders.
16
+ *
17
+ * Reordenamiento bulk para drag-and-drop: el front manda la lista COMPLETA de
18
+ * subcategorías de la categoría (para ese país) en el orden deseado. El backend
19
+ * asigna `subcategoryOrder = índice+1` a los leaves de cada subcategoría EN ese
20
+ * país, en una sola llamada.
21
+ */
22
+ class BackofficeSubcategoryReorderRequest {
23
+ }
24
+ exports.BackofficeSubcategoryReorderRequest = BackofficeSubcategoryReorderRequest;
25
+ __decorate([
26
+ (0, class_validator_1.IsArray)(),
27
+ (0, class_validator_1.ArrayNotEmpty)(),
28
+ (0, class_validator_1.IsString)({ each: true }),
29
+ __metadata("design:type", Array)
30
+ ], BackofficeSubcategoryReorderRequest.prototype, "orders", void 0);
@@ -58,5 +58,8 @@ export * from "./dtos/BackofficeLeafListItem";
58
58
  export * from "./dtos/BackofficeLeafListResponse";
59
59
  export * from "./dtos/BackofficeLeafDetailResponse";
60
60
  export * from "./dtos/BackofficeLeafFacetsResponse";
61
+ export * from "./dtos/BackofficeSubcategoryOrderUpdateRequest";
62
+ export * from "./dtos/BackofficeSubcategoryOrdersResponse";
63
+ export * from "./dtos/BackofficeSubcategoryReorderRequest";
61
64
  export * from "./dtos/BannerUploadUrlRequest";
62
65
  export * from "./dtos/BannerUploadUrlResponse";
@@ -80,6 +80,11 @@ __exportStar(require("./dtos/BackofficeLeafListItem"), exports);
80
80
  __exportStar(require("./dtos/BackofficeLeafListResponse"), exports);
81
81
  __exportStar(require("./dtos/BackofficeLeafDetailResponse"), exports);
82
82
  __exportStar(require("./dtos/BackofficeLeafFacetsResponse"), exports);
83
+ //Admin leaves iteration-2 (v3.36.0): countryId en list + ordering de subcategorías
84
+ __exportStar(require("./dtos/BackofficeSubcategoryOrderUpdateRequest"), exports);
85
+ __exportStar(require("./dtos/BackofficeSubcategoryOrdersResponse"), exports);
86
+ //Admin leaves iteration-3 (v3.37.0): ordering por país + bulk reorder (drag-and-drop)
87
+ __exportStar(require("./dtos/BackofficeSubcategoryReorderRequest"), exports);
83
88
  //Banner assets upload (presigned PUT)
84
89
  __exportStar(require("./dtos/BannerUploadUrlRequest"), exports);
85
90
  __exportStar(require("./dtos/BannerUploadUrlResponse"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.35.0",
3
+ "version": "3.37.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -16,4 +16,11 @@ export interface BackofficeLeafFacetsResponse {
16
16
  * Key = nombre de categoría, value = array de subcategorías que aparecen bajo esa categoría.
17
17
  */
18
18
  subcategoriesByCategory: { [category: string]: string[] };
19
+
20
+ /**
21
+ * Países destino distintos observados en el catálogo (códigos ISO numéricos,
22
+ * ordenados). El front arma el dropdown de filtro por país; el mapeo
23
+ * code→nombre/bandera es responsabilidad del front.
24
+ */
25
+ countries: string[];
19
26
  }
@@ -20,7 +20,8 @@ export interface BackofficeLeafListItem {
20
20
 
21
21
  // v3 additions
22
22
  provider: Provider; // MULTICOMM | MULTICENTER | STP — read-only, separa el lambda del proveedor real
23
- currency: string; // USD, MXN — copiado del item del conector
23
+ currency: string; // USD, MXN — moneda con la que se paga
24
+ countryId: string; // ISO numérico del país destino de la recarga (840 USA, 484 MX, 192 CU, …)
24
25
  serviceOrder: number; // orden del leaf en su subcategory
25
26
  subcategoryOrder: number;// orden de la subcategory en su category
26
27
  }
@@ -0,0 +1,20 @@
1
+ import { IsInt, IsString, IsNotEmpty, Min } from "class-validator";
2
+
3
+ /**
4
+ * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
5
+ *
6
+ * Aplica `order` como `subcategoryOrder` a los leaves de esa
7
+ * (category, subcategory) EN el país indicado (`countryId`). Normaliza el valor
8
+ * en el grupo de ese país de una sola llamada. El orden de una subcategoría es
9
+ * per-país (TELCEL puede ir distinto en MX vs CO).
10
+ */
11
+ export class BackofficeSubcategoryOrderUpdateRequest {
12
+ @IsInt()
13
+ @Min(0)
14
+ order: number;
15
+
16
+ /** Código ISO numérico del país destino cuyo orden se ajusta (ej. "484"). */
17
+ @IsString()
18
+ @IsNotEmpty()
19
+ countryId: string;
20
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Una subcategoría con su orden canónico y cuántos leaves agrupa.
3
+ * `order` = min(subcategoryOrder) entre los leaves del grupo (hasta que un
4
+ * bulk PUT los normalice a un único valor).
5
+ */
6
+ export interface SubcategoryOrderItem {
7
+ subcategory: string;
8
+ order: number;
9
+ leafCount: number;
10
+ }
11
+
12
+ /**
13
+ * Respuesta de GET /backoffice/leaves/subcategory-orders.
14
+ *
15
+ * Alimenta la pantalla de "Ordenamiento de subcategorías" del backoffice.
16
+ * Estructura POR PAÍS: el orden de una subcategoría depende del país destino
17
+ * (ej. TELCEL puede ir 1º en MX y último en CO). Cada subcategoría aparece una
18
+ * vez por cada país donde opera.
19
+ *
20
+ * Forma: `byCountry[countryId][category]` = subcategorías de esa categoría EN ese
21
+ * país, ordenadas por `order` ASC (alfabético como desempate). `order` =
22
+ * min(subcategoryOrder) entre los leaves de `(country, category, subcategory)`.
23
+ *
24
+ * `countryId` es el código ISO numérico (el front mapea a nombre/bandera).
25
+ * `leafCount` incluye leaves deshabilitados (se ordena el árbol completo).
26
+ */
27
+ export interface BackofficeSubcategoryOrdersResponse {
28
+ byCountry: { [countryId: string]: { [category: string]: SubcategoryOrderItem[] } };
29
+ }
@@ -0,0 +1,17 @@
1
+ import { ArrayNotEmpty, IsArray, IsString } from "class-validator";
2
+
3
+ /**
4
+ * Body de PUT /backoffice/leaves/categories/{category}/countries/{countryId}/subcategory-orders.
5
+ *
6
+ * Reordenamiento bulk para drag-and-drop: el front manda la lista COMPLETA de
7
+ * subcategorías de la categoría (para ese país) en el orden deseado. El backend
8
+ * asigna `subcategoryOrder = índice+1` a los leaves de cada subcategoría EN ese
9
+ * país, en una sola llamada.
10
+ */
11
+ export class BackofficeSubcategoryReorderRequest {
12
+ /** Subcategorías en el orden final deseado (posición 1..N por índice). */
13
+ @IsArray()
14
+ @ArrayNotEmpty()
15
+ @IsString({ each: true })
16
+ orders: string[];
17
+ }
@@ -65,6 +65,11 @@ export * from "./dtos/BackofficeLeafListItem";
65
65
  export * from "./dtos/BackofficeLeafListResponse";
66
66
  export * from "./dtos/BackofficeLeafDetailResponse";
67
67
  export * from "./dtos/BackofficeLeafFacetsResponse";
68
+ //Admin leaves iteration-2 (v3.36.0): countryId en list + ordering de subcategorías
69
+ export * from "./dtos/BackofficeSubcategoryOrderUpdateRequest";
70
+ export * from "./dtos/BackofficeSubcategoryOrdersResponse";
71
+ //Admin leaves iteration-3 (v3.37.0): ordering por país + bulk reorder (drag-and-drop)
72
+ export * from "./dtos/BackofficeSubcategoryReorderRequest";
68
73
  //Banner assets upload (presigned PUT)
69
74
  export * from "./dtos/BannerUploadUrlRequest";
70
75
  export * from "./dtos/BannerUploadUrlResponse";