@fiado/type-kit 3.503.0 → 3.505.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.
@@ -24,6 +24,10 @@ describe('retailCommission — enums de las reglas', () => {
24
24
  expect(Object.values(RetailCommission.CommissionOperatorEnum)).toEqual(['GTE', 'LTE', 'LT', 'GT', 'BETWEEN', 'IN']);
25
25
  });
26
26
 
27
+ it('una regla cuenta piezas o ventas', () => {
28
+ expect(Object.values(RetailCommission.CommissionCountByEnum)).toEqual(['PIECE', 'SALE']);
29
+ });
30
+
27
31
  it('expone las ventanas del corte', () => {
28
32
  expect(Object.values(RetailCommission.CommissionWindowEnum)).toEqual(['SEMANA_OPERATIVA', 'ROLLING_7D', 'MES']);
29
33
  });
@@ -107,7 +107,7 @@ export interface CommissionAppliedBonus {
107
107
  name: string;
108
108
  lineId: string;
109
109
  sku: string;
110
- /** Posición de la pieza en el contador de la regla dentro del periodo. */
110
+ /** Posición de la pieza (o de la venta, si la regla cuenta ventas) en el contador de la regla dentro del periodo. */
111
111
  position: number;
112
112
  mode: CommissionBonusModeEnum;
113
113
  amountCents: number;
@@ -5,6 +5,7 @@ import type { CommissionAccrual, CommissionAppliedBonus, CommissionSaleInput, Co
5
5
  import type { CommissionAdjustment, CommissionAppliedMultiplier, CommissionAppliedThreshold, CommissionPayout, CommissionPayoutSeller, CommissionSellerBreakdown } from './CommissionPayout';
6
6
  import type { CommissionPolicies, CommissionRule, CommissionRuleCondition, CommissionRuleLevers, CommissionRuleScope, CommissionRuleSetSnapshot } from './CommissionRule';
7
7
  import type { CommissionWindowEnum } from '../enums/CommissionWindowEnum';
8
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
8
9
  import type { CommissionAggregateByEnum } from '../enums/CommissionAggregateByEnum';
9
10
  import type { CommissionSeriesByEnum } from '../enums/CommissionSeriesByEnum';
10
11
  import type { CommissionAccrualStatusEnum } from '../enums/CommissionAccrualStatusEnum';
@@ -194,6 +195,8 @@ export interface CommissionRuleInput {
194
195
  effectiveTo: string | null;
195
196
  priority: number;
196
197
  replacesOthers: boolean;
198
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
199
+ countBy?: CommissionCountByEnum;
197
200
  }
198
201
  /** `POST /backoffice/commissions/rules` — la regla nace en borrador. */
199
202
  export type CreateRuleRequest = CommissionRuleInput;
@@ -370,6 +373,8 @@ export interface CommissionRuleView {
370
373
  condition: CommissionRuleCondition | null;
371
374
  effectiveFrom: string;
372
375
  effectiveTo: string | null;
376
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
377
+ countBy?: CommissionCountByEnum;
373
378
  }
374
379
  /** Lo pagado en varios cortes. */
375
380
  export interface MyCommissionsTotals {
@@ -1,4 +1,5 @@
1
1
  import type { CommissionPayoutStatusEnum } from '../enums/CommissionPayoutStatusEnum';
2
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
2
3
  /**
3
4
  * El corte semanal y todo lo que cuelga de él.
4
5
  * SureKeep Fase 3 — pista Retail.
@@ -77,8 +78,10 @@ export interface CommissionAdjustment {
77
78
  export interface CommissionRuleContribution {
78
79
  ruleId: string;
79
80
  name: string;
80
- /** Piezas que pagaron esta regla. */
81
+ /** Piezas que pagaron esta regla; ventas, si la regla cuenta ventas. */
81
82
  unitsCount: number;
83
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
84
+ countBy?: CommissionCountByEnum;
82
85
  bonusCents: number;
83
86
  /** Su parte del multiplicador, en proporción a su bono. */
84
87
  multiplierShareCents: number;
@@ -1,6 +1,7 @@
1
1
  import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
2
2
  import type { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
3
3
  import type { CommissionBonusModeEnum } from '../enums/CommissionBonusModeEnum';
4
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
4
5
  import type { CommissionMetricEnum } from '../enums/CommissionMetricEnum';
5
6
  import type { CommissionOperatorEnum } from '../enums/CommissionOperatorEnum';
6
7
  import type { CommissionRuleStatusEnum } from '../enums/CommissionRuleStatusEnum';
@@ -72,6 +73,8 @@ export interface CommissionRule {
72
73
  priority: number;
73
74
  /** Solo con multiplicador: si dispara, es el único multiplicador del corte. */
74
75
  replacesOthers: boolean;
76
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
77
+ countBy?: CommissionCountByEnum;
75
78
  /** Sube en cada guardado. */
76
79
  version: number;
77
80
  /** La versión que está en el plan vigente. `null` si nunca se publicó. */
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Cómo se calcula un bono.
3
3
  *
4
- * FIXED - Monto fijo en centavos por pieza.
5
- * PERCENT - Puntos base sobre el precio neto de la pieza (10000 = 100%).
4
+ * FIXED - Monto fijo en centavos por pieza, o por venta si la regla cuenta ventas.
5
+ * PERCENT - Puntos base sobre el precio neto de la pieza, o de las piezas de la venta en el alcance si la regla cuenta ventas (10000 = 100%).
6
6
  */
7
7
  export declare enum CommissionBonusModeEnum {
8
8
  FIXED = "FIXED",
@@ -4,8 +4,8 @@ exports.CommissionBonusModeEnum = void 0;
4
4
  /**
5
5
  * Cómo se calcula un bono.
6
6
  *
7
- * FIXED - Monto fijo en centavos por pieza.
8
- * PERCENT - Puntos base sobre el precio neto de la pieza (10000 = 100%).
7
+ * FIXED - Monto fijo en centavos por pieza, o por venta si la regla cuenta ventas.
8
+ * PERCENT - Puntos base sobre el precio neto de la pieza, o de las piezas de la venta en el alcance si la regla cuenta ventas (10000 = 100%).
9
9
  */
10
10
  var CommissionBonusModeEnum;
11
11
  (function (CommissionBonusModeEnum) {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Qué cuenta una regla para su posición y su bono por venta.
3
+ *
4
+ * PIECE - Cada pieza vendida: una venta con teléfono y funda son dos.
5
+ * SALE - Cada venta (ticket), sin importar cuántas piezas lleve.
6
+ */
7
+ export declare enum CommissionCountByEnum {
8
+ PIECE = "PIECE",
9
+ SALE = "SALE"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommissionCountByEnum = void 0;
4
+ /**
5
+ * Qué cuenta una regla para su posición y su bono por venta.
6
+ *
7
+ * PIECE - Cada pieza vendida: una venta con teléfono y funda son dos.
8
+ * SALE - Cada venta (ticket), sin importar cuántas piezas lleve.
9
+ */
10
+ var CommissionCountByEnum;
11
+ (function (CommissionCountByEnum) {
12
+ CommissionCountByEnum["PIECE"] = "PIECE";
13
+ CommissionCountByEnum["SALE"] = "SALE";
14
+ })(CommissionCountByEnum || (exports.CommissionCountByEnum = CommissionCountByEnum = {}));
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Métricas de la condición de una regla.
3
3
  *
4
- * POSICION_VENTA_EN_PERIODO - Lugar de la pieza entre las del vendedor en el periodo que caen en el alcance de la regla.
4
+ * POSICION_VENTA_EN_PERIODO - Lugar de la pieza (o de la venta, si la regla cuenta ventas) entre las del vendedor en el periodo que caen en el alcance de la regla.
5
5
  * COLOCACION_PERIODO - Suma del precio neto de todo lo que el vendedor vendió en el periodo, en centavos.
6
6
  * NPI_M30_VENDEDOR - Proporción de créditos del vendedor con primer impago a 30 días, en bps. Viene del crédito.
7
7
  * SKUS_DISTINTOS_PERIODO - Cuántos SKUs distintos vendió el vendedor en el periodo.
@@ -4,7 +4,7 @@ exports.CommissionMetricEnum = void 0;
4
4
  /**
5
5
  * Métricas de la condición de una regla.
6
6
  *
7
- * POSICION_VENTA_EN_PERIODO - Lugar de la pieza entre las del vendedor en el periodo que caen en el alcance de la regla.
7
+ * POSICION_VENTA_EN_PERIODO - Lugar de la pieza (o de la venta, si la regla cuenta ventas) entre las del vendedor en el periodo que caen en el alcance de la regla.
8
8
  * COLOCACION_PERIODO - Suma del precio neto de todo lo que el vendedor vendió en el periodo, en centavos.
9
9
  * NPI_M30_VENDEDOR - Proporción de créditos del vendedor con primer impago a 30 días, en bps. Viene del crédito.
10
10
  * SKUS_DISTINTOS_PERIODO - Cuántos SKUs distintos vendió el vendedor en el periodo.
@@ -16,6 +16,7 @@ export * from './enums/CommissionBonusModeEnum';
16
16
  export * from './enums/CommissionMetricEnum';
17
17
  export * from './enums/CommissionOperatorEnum';
18
18
  export * from './enums/CommissionWindowEnum';
19
+ export * from './enums/CommissionCountByEnum';
19
20
  export * from './enums/CommissionAggregateByEnum';
20
21
  export * from './enums/CommissionSeriesByEnum';
21
22
  export * from './enums/CommissionSimulationSkipEnum';
@@ -33,6 +33,7 @@ __exportStar(require("./enums/CommissionBonusModeEnum"), exports);
33
33
  __exportStar(require("./enums/CommissionMetricEnum"), exports);
34
34
  __exportStar(require("./enums/CommissionOperatorEnum"), exports);
35
35
  __exportStar(require("./enums/CommissionWindowEnum"), exports);
36
+ __exportStar(require("./enums/CommissionCountByEnum"), exports);
36
37
  __exportStar(require("./enums/CommissionAggregateByEnum"), exports);
37
38
  __exportStar(require("./enums/CommissionSeriesByEnum"), exports);
38
39
  __exportStar(require("./enums/CommissionSimulationSkipEnum"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.503.0",
3
+ "version": "3.505.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -112,7 +112,7 @@ export interface CommissionAppliedBonus {
112
112
  name: string;
113
113
  lineId: string;
114
114
  sku: string;
115
- /** Posición de la pieza en el contador de la regla dentro del periodo. */
115
+ /** Posición de la pieza (o de la venta, si la regla cuenta ventas) en el contador de la regla dentro del periodo. */
116
116
  position: number;
117
117
  mode: CommissionBonusModeEnum;
118
118
  amountCents: number;
@@ -24,6 +24,7 @@ import type {
24
24
  CommissionRuleSetSnapshot,
25
25
  } from './CommissionRule';
26
26
  import type { CommissionWindowEnum } from '../enums/CommissionWindowEnum';
27
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
27
28
  import type { CommissionAggregateByEnum } from '../enums/CommissionAggregateByEnum';
28
29
  import type { CommissionSeriesByEnum } from '../enums/CommissionSeriesByEnum';
29
30
  import type { CommissionAccrualStatusEnum } from '../enums/CommissionAccrualStatusEnum';
@@ -251,6 +252,8 @@ export interface CommissionRuleInput {
251
252
  effectiveTo: string | null;
252
253
  priority: number;
253
254
  replacesOthers: boolean;
255
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
256
+ countBy?: CommissionCountByEnum;
254
257
  }
255
258
 
256
259
  /** `POST /backoffice/commissions/rules` — la regla nace en borrador. */
@@ -447,6 +450,8 @@ export interface CommissionRuleView {
447
450
  condition: CommissionRuleCondition | null;
448
451
  effectiveFrom: string;
449
452
  effectiveTo: string | null;
453
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
454
+ countBy?: CommissionCountByEnum;
450
455
  }
451
456
 
452
457
  /** Lo pagado en varios cortes. */
@@ -1,4 +1,5 @@
1
1
  import type { CommissionPayoutStatusEnum } from '../enums/CommissionPayoutStatusEnum';
2
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
2
3
 
3
4
  /**
4
5
  * El corte semanal y todo lo que cuelga de él.
@@ -81,8 +82,10 @@ export interface CommissionAdjustment {
81
82
  export interface CommissionRuleContribution {
82
83
  ruleId: string;
83
84
  name: string;
84
- /** Piezas que pagaron esta regla. */
85
+ /** Piezas que pagaron esta regla; ventas, si la regla cuenta ventas. */
85
86
  unitsCount: number;
87
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
88
+ countBy?: CommissionCountByEnum;
86
89
  bonusCents: number;
87
90
  /** Su parte del multiplicador, en proporción a su bono. */
88
91
  multiplierShareCents: number;
@@ -1,6 +1,7 @@
1
1
  import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
2
2
  import type { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
3
3
  import type { CommissionBonusModeEnum } from '../enums/CommissionBonusModeEnum';
4
+ import type { CommissionCountByEnum } from '../enums/CommissionCountByEnum';
4
5
  import type { CommissionMetricEnum } from '../enums/CommissionMetricEnum';
5
6
  import type { CommissionOperatorEnum } from '../enums/CommissionOperatorEnum';
6
7
  import type { CommissionRuleStatusEnum } from '../enums/CommissionRuleStatusEnum';
@@ -81,6 +82,8 @@ export interface CommissionRule {
81
82
  priority: number;
82
83
  /** Solo con multiplicador: si dispara, es el único multiplicador del corte. */
83
84
  replacesOthers: boolean;
85
+ /** Si la regla cuenta piezas o ventas. Ausente = `PIECE`. */
86
+ countBy?: CommissionCountByEnum;
84
87
  /** Sube en cada guardado. */
85
88
  version: number;
86
89
  /** La versión que está en el plan vigente. `null` si nunca se publicó. */
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Cómo se calcula un bono.
3
3
  *
4
- * FIXED - Monto fijo en centavos por pieza.
5
- * PERCENT - Puntos base sobre el precio neto de la pieza (10000 = 100%).
4
+ * FIXED - Monto fijo en centavos por pieza, o por venta si la regla cuenta ventas.
5
+ * PERCENT - Puntos base sobre el precio neto de la pieza, o de las piezas de la venta en el alcance si la regla cuenta ventas (10000 = 100%).
6
6
  */
7
7
  export enum CommissionBonusModeEnum {
8
8
  FIXED = 'FIXED',
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Qué cuenta una regla para su posición y su bono por venta.
3
+ *
4
+ * PIECE - Cada pieza vendida: una venta con teléfono y funda son dos.
5
+ * SALE - Cada venta (ticket), sin importar cuántas piezas lleve.
6
+ */
7
+ export enum CommissionCountByEnum {
8
+ PIECE = 'PIECE',
9
+ SALE = 'SALE',
10
+ }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Métricas de la condición de una regla.
3
3
  *
4
- * POSICION_VENTA_EN_PERIODO - Lugar de la pieza entre las del vendedor en el periodo que caen en el alcance de la regla.
4
+ * POSICION_VENTA_EN_PERIODO - Lugar de la pieza (o de la venta, si la regla cuenta ventas) entre las del vendedor en el periodo que caen en el alcance de la regla.
5
5
  * COLOCACION_PERIODO - Suma del precio neto de todo lo que el vendedor vendió en el periodo, en centavos.
6
6
  * NPI_M30_VENDEDOR - Proporción de créditos del vendedor con primer impago a 30 días, en bps. Viene del crédito.
7
7
  * SKUS_DISTINTOS_PERIODO - Cuántos SKUs distintos vendió el vendedor en el periodo.
@@ -17,6 +17,7 @@ export * from './enums/CommissionBonusModeEnum';
17
17
  export * from './enums/CommissionMetricEnum';
18
18
  export * from './enums/CommissionOperatorEnum';
19
19
  export * from './enums/CommissionWindowEnum';
20
+ export * from './enums/CommissionCountByEnum';
20
21
  export * from './enums/CommissionAggregateByEnum';
21
22
  export * from './enums/CommissionSeriesByEnum';
22
23
  export * from './enums/CommissionSimulationSkipEnum';