@fiado/type-kit 3.36.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
  }
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
3
3
  *
4
- * Aplica `order` como `subcategoryOrder` a TODOS los leaves de esa
5
- * (category, subcategory) normaliza el valor en el grupo de una sola llamada.
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).
6
8
  */
7
9
  export declare class BackofficeSubcategoryOrderUpdateRequest {
8
10
  order: number;
11
+ /** Código ISO numérico del país destino cuyo orden se ajusta (ej. "484"). */
12
+ countryId: string;
9
13
  }
@@ -14,8 +14,10 @@ const class_validator_1 = require("class-validator");
14
14
  /**
15
15
  * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
16
16
  *
17
- * Aplica `order` como `subcategoryOrder` a TODOS los leaves de esa
18
- * (category, subcategory) normaliza el valor en el grupo de una sola llamada.
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).
19
21
  */
20
22
  class BackofficeSubcategoryOrderUpdateRequest {
21
23
  }
@@ -25,3 +27,8 @@ __decorate([
25
27
  (0, class_validator_1.Min)(0),
26
28
  __metadata("design:type", Number)
27
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);
@@ -12,14 +12,21 @@ export interface SubcategoryOrderItem {
12
12
  * Respuesta de GET /backoffice/leaves/subcategory-orders.
13
13
  *
14
14
  * Alimenta la pantalla de "Ordenamiento de subcategorías" del backoffice.
15
- * Las categorías van como keys (orden alfabético en el front); cada una
16
- * trae sus subcategorías ya ordenadas por `order` ASC (alfabético como desempate).
15
+ * Estructura POR PAÍS: el orden de una subcategoría depende del país destino
16
+ * (ej. TELCEL puede ir en MX y último en CO). Cada subcategoría aparece una
17
+ * vez por cada país donde opera.
17
18
  *
18
- * leafCount incluye leaves deshabilitados (la jefa ordena el árbol completo,
19
- * no solo lo visible públicamente).
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).
20
25
  */
21
26
  export interface BackofficeSubcategoryOrdersResponse {
22
- byCategory: {
23
- [category: string]: SubcategoryOrderItem[];
27
+ byCountry: {
28
+ [countryId: string]: {
29
+ [category: string]: SubcategoryOrderItem[];
30
+ };
24
31
  };
25
32
  }
@@ -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);
@@ -60,5 +60,6 @@ export * from "./dtos/BackofficeLeafDetailResponse";
60
60
  export * from "./dtos/BackofficeLeafFacetsResponse";
61
61
  export * from "./dtos/BackofficeSubcategoryOrderUpdateRequest";
62
62
  export * from "./dtos/BackofficeSubcategoryOrdersResponse";
63
+ export * from "./dtos/BackofficeSubcategoryReorderRequest";
63
64
  export * from "./dtos/BannerUploadUrlRequest";
64
65
  export * from "./dtos/BannerUploadUrlResponse";
@@ -83,6 +83,8 @@ __exportStar(require("./dtos/BackofficeLeafFacetsResponse"), exports);
83
83
  //Admin leaves iteration-2 (v3.36.0): countryId en list + ordering de subcategorías
84
84
  __exportStar(require("./dtos/BackofficeSubcategoryOrderUpdateRequest"), exports);
85
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);
86
88
  //Banner assets upload (presigned PUT)
87
89
  __exportStar(require("./dtos/BannerUploadUrlRequest"), exports);
88
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.36.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
  }
@@ -1,13 +1,20 @@
1
- import { IsInt, Min } from "class-validator";
1
+ import { IsInt, IsString, IsNotEmpty, Min } from "class-validator";
2
2
 
3
3
  /**
4
4
  * Body de PUT /backoffice/leaves/categories/{category}/subcategories/{subcategory}/subcategoryOrder.
5
5
  *
6
- * Aplica `order` como `subcategoryOrder` a TODOS los leaves de esa
7
- * (category, subcategory) normaliza el valor en el grupo de una sola llamada.
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).
8
10
  */
9
11
  export class BackofficeSubcategoryOrderUpdateRequest {
10
12
  @IsInt()
11
13
  @Min(0)
12
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;
13
20
  }
@@ -13,12 +13,17 @@ export interface SubcategoryOrderItem {
13
13
  * Respuesta de GET /backoffice/leaves/subcategory-orders.
14
14
  *
15
15
  * Alimenta la pantalla de "Ordenamiento de subcategorías" del backoffice.
16
- * Las categorías van como keys (orden alfabético en el front); cada una
17
- * trae sus subcategorías ya ordenadas por `order` ASC (alfabético como desempate).
16
+ * Estructura POR PAÍS: el orden de una subcategoría depende del país destino
17
+ * (ej. TELCEL puede ir en MX y último en CO). Cada subcategoría aparece una
18
+ * vez por cada país donde opera.
18
19
  *
19
- * leafCount incluye leaves deshabilitados (la jefa ordena el árbol completo,
20
- * no solo lo visible públicamente).
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).
21
26
  */
22
27
  export interface BackofficeSubcategoryOrdersResponse {
23
- byCategory: { [category: string]: SubcategoryOrderItem[] };
28
+ byCountry: { [countryId: string]: { [category: string]: SubcategoryOrderItem[] } };
24
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
+ }
@@ -68,6 +68,8 @@ export * from "./dtos/BackofficeLeafFacetsResponse";
68
68
  //Admin leaves iteration-2 (v3.36.0): countryId en list + ordering de subcategorías
69
69
  export * from "./dtos/BackofficeSubcategoryOrderUpdateRequest";
70
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";
71
73
  //Banner assets upload (presigned PUT)
72
74
  export * from "./dtos/BannerUploadUrlRequest";
73
75
  export * from "./dtos/BannerUploadUrlResponse";