@fiado/type-kit 3.279.0 → 3.280.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.
Files changed (85) hide show
  1. package/bin/index.d.ts +1 -0
  2. package/bin/index.js +6 -2
  3. package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +11 -0
  4. package/bin/loanConfig/enums/ModifiableByRoleEnum.js +15 -0
  5. package/bin/places/dtos/CashInFeeDto.d.ts +17 -0
  6. package/bin/places/dtos/CashInFeeDto.js +12 -0
  7. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +22 -0
  8. package/bin/{walletFunding/dtos/CancelFundingRequest.js → platformRbac/dtos/ResendOtpRequest.js} +16 -13
  9. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +11 -0
  10. package/bin/{walletFunding/dtos/CancelFundingReferenceRequest.js → platformRbac/dtos/ResendSelfRegisterOtpRequest.js} +18 -13
  11. package/bin/retailCommission/dtos/CommissionAccrual.d.ts +78 -0
  12. package/bin/retailCommission/dtos/CommissionAccrual.js +2 -0
  13. package/bin/retailCommission/dtos/CommissionApi.d.ts +169 -0
  14. package/bin/retailCommission/dtos/CommissionApi.js +2 -0
  15. package/bin/retailCommission/dtos/CommissionCalcTrace.d.ts +73 -0
  16. package/bin/retailCommission/dtos/CommissionCalcTrace.js +2 -0
  17. package/bin/retailCommission/dtos/CommissionPayout.d.ts +73 -0
  18. package/bin/retailCommission/dtos/CommissionPayout.js +2 -0
  19. package/bin/retailCommission/dtos/CommissionPlan.d.ts +182 -0
  20. package/bin/retailCommission/dtos/CommissionPlan.js +2 -0
  21. package/bin/retailCommission/enums/CommissionAccrualStatusEnum.d.ts +14 -0
  22. package/bin/retailCommission/enums/CommissionAccrualStatusEnum.js +18 -0
  23. package/bin/retailCommission/enums/CommissionCalcStepEnum.d.ts +23 -0
  24. package/bin/retailCommission/enums/CommissionCalcStepEnum.js +27 -0
  25. package/bin/retailCommission/enums/CommissionExceptionTypeEnum.d.ts +14 -0
  26. package/bin/retailCommission/enums/CommissionExceptionTypeEnum.js +18 -0
  27. package/bin/retailCommission/enums/CommissionMechanicTypeEnum.d.ts +24 -0
  28. package/bin/retailCommission/enums/CommissionMechanicTypeEnum.js +28 -0
  29. package/bin/retailCommission/enums/CommissionPayeeTypeEnum.d.ts +13 -0
  30. package/bin/retailCommission/enums/CommissionPayeeTypeEnum.js +17 -0
  31. package/bin/retailCommission/enums/CommissionPayoutStatusEnum.d.ts +18 -0
  32. package/bin/retailCommission/enums/CommissionPayoutStatusEnum.js +22 -0
  33. package/bin/retailCommission/enums/CommissionPeriodTypeEnum.d.ts +17 -0
  34. package/bin/retailCommission/enums/CommissionPeriodTypeEnum.js +21 -0
  35. package/bin/retailCommission/enums/CommissionPlanStatusEnum.d.ts +14 -0
  36. package/bin/retailCommission/enums/CommissionPlanStatusEnum.js +18 -0
  37. package/bin/retailCommission/enums/CommissionPriceReferenceEnum.d.ts +18 -0
  38. package/bin/retailCommission/enums/CommissionPriceReferenceEnum.js +22 -0
  39. package/bin/retailCommission/enums/CommissionQuotaMeasureEnum.d.ts +12 -0
  40. package/bin/retailCommission/enums/CommissionQuotaMeasureEnum.js +16 -0
  41. package/bin/retailCommission/enums/CommissionQuotaModeEnum.d.ts +13 -0
  42. package/bin/retailCommission/enums/CommissionQuotaModeEnum.js +17 -0
  43. package/bin/retailCommission/enums/CommissionQuotaSubjectEnum.d.ts +12 -0
  44. package/bin/retailCommission/enums/CommissionQuotaSubjectEnum.js +16 -0
  45. package/bin/retailCommission/enums/CommissionQuotaTypeEnum.d.ts +12 -0
  46. package/bin/retailCommission/enums/CommissionQuotaTypeEnum.js +16 -0
  47. package/bin/retailCommission/index.d.ts +18 -0
  48. package/bin/retailCommission/index.js +37 -0
  49. package/package.json +1 -1
  50. package/src/index.ts +4 -0
  51. package/src/retailCommission/dtos/CommissionAccrual.ts +81 -0
  52. package/src/retailCommission/dtos/CommissionApi.ts +205 -0
  53. package/src/retailCommission/dtos/CommissionCalcTrace.ts +64 -0
  54. package/src/retailCommission/dtos/CommissionPayout.ts +76 -0
  55. package/src/retailCommission/dtos/CommissionPlan.ts +199 -0
  56. package/src/retailCommission/enums/CommissionAccrualStatusEnum.ts +14 -0
  57. package/src/retailCommission/enums/CommissionCalcStepEnum.ts +23 -0
  58. package/src/retailCommission/enums/CommissionExceptionTypeEnum.ts +14 -0
  59. package/src/retailCommission/enums/CommissionMechanicTypeEnum.ts +24 -0
  60. package/src/retailCommission/enums/CommissionPayeeTypeEnum.ts +13 -0
  61. package/src/retailCommission/enums/CommissionPayoutStatusEnum.ts +18 -0
  62. package/src/retailCommission/enums/CommissionPeriodTypeEnum.ts +17 -0
  63. package/src/retailCommission/enums/CommissionPlanStatusEnum.ts +14 -0
  64. package/src/retailCommission/enums/CommissionPriceReferenceEnum.ts +18 -0
  65. package/src/retailCommission/enums/CommissionQuotaMeasureEnum.ts +12 -0
  66. package/src/retailCommission/enums/CommissionQuotaModeEnum.ts +13 -0
  67. package/src/retailCommission/enums/CommissionQuotaSubjectEnum.ts +12 -0
  68. package/src/retailCommission/enums/CommissionQuotaTypeEnum.ts +12 -0
  69. package/src/retailCommission/index.ts +23 -0
  70. package/bin/identity/enums/SelfieSourceEnum.d.ts +0 -10
  71. package/bin/identity/enums/SelfieSourceEnum.js +0 -14
  72. package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.d.ts +0 -11
  73. package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.js +0 -46
  74. package/bin/loanCredit/enums/ClientLevelEnum.d.ts +0 -11
  75. package/bin/loanCredit/enums/ClientLevelEnum.js +0 -15
  76. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +0 -6
  77. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +0 -7
  78. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +0 -6
  79. package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +0 -11
  80. package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +0 -14
  81. package/bin/walletFunding/dtos/CancelFundingResponse.js +0 -12
  82. package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +0 -3
  83. package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +0 -21
  84. package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +0 -7
  85. package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +0 -6
@@ -0,0 +1,199 @@
1
+ import type { CommissionMechanicTypeEnum } from '../enums/CommissionMechanicTypeEnum';
2
+ import type { CommissionPlanStatusEnum } from '../enums/CommissionPlanStatusEnum';
3
+ import type { CommissionPriceReferenceEnum } from '../enums/CommissionPriceReferenceEnum';
4
+ import type { CommissionQuotaTypeEnum } from '../enums/CommissionQuotaTypeEnum';
5
+ import type { CommissionQuotaMeasureEnum } from '../enums/CommissionQuotaMeasureEnum';
6
+ import type { CommissionQuotaSubjectEnum } from '../enums/CommissionQuotaSubjectEnum';
7
+ import type { CommissionQuotaModeEnum } from '../enums/CommissionQuotaModeEnum';
8
+ import type { CommissionPeriodTypeEnum } from '../enums/CommissionPeriodTypeEnum';
9
+ import type { CommissionExceptionTypeEnum } from '../enums/CommissionExceptionTypeEnum';
10
+
11
+ /**
12
+ * El plan de comisiones de VentasLuga, versionado por snapshot inmutable.
13
+ * SureKeep Fase 3 — pista Retail.
14
+ *
15
+ * Todo lo de este archivo vive DENTRO de un snapshot: se congela al publicar y no se vuelve a tocar.
16
+ * Esa es la razón de que hasta las reglas de `sku → categoría` (`CommissionCategoryMatch`) vivan acá
17
+ * y no en el código del motor — si vivieran en el código, un redespliegue cambiaría montos ya
18
+ * devengados y dos accruals del mismo snapshot podrían calcularse distinto.
19
+ *
20
+ * Montos en centavos (`*Cents`), porcentajes en puntos base (`*Bps`, 10000 = 100%).
21
+ */
22
+
23
+ // ─────────────────────────────────────────────────────────────────────────────
24
+ // Mecánicas — 6 formas, 1 evaluador
25
+ // ─────────────────────────────────────────────────────────────────────────────
26
+
27
+ /**
28
+ * Un par de valores: sin cuota y con cuota.
29
+ *
30
+ * ⚠️ **No es un descuento: son dos tablas de precios.** Alcanzar la cuota no «suma un bono», elige
31
+ * columna. Por eso `base: 0, withQuota: 2500` (PayJoy) es válido y significa «solo comisiona si
32
+ * alcanzó la cuota», no un error de captura.
33
+ */
34
+ export interface CommissionValuePair {
35
+ /** Valor cuando NO se alcanzó la cuota. Puede ser 0. */
36
+ base: number;
37
+ /** Valor cuando SÍ se alcanzó. Puede ser igual al base si la categoría no discrimina. */
38
+ withQuota: number;
39
+ }
40
+
41
+ /** Un tramo de precio del equipo. Los tramos no se solapan y cubren de 0 a infinito. */
42
+ export interface CommissionPriceTier extends CommissionValuePair {
43
+ /** Etiqueta visible: `D`, `C`, `B`, `A`. */
44
+ grade: string;
45
+ minCents: number;
46
+ /** `null` = sin tope superior (el tramo más alto). */
47
+ maxCents: number | null;
48
+ }
49
+
50
+ /** Una celda de la matriz, identificada por sus coordenadas. */
51
+ export interface CommissionMatrixCell extends CommissionValuePair {
52
+ /** Un valor por dimensión, en el mismo orden que `dimensions`. */
53
+ coords: string[];
54
+ }
55
+
56
+ /** Una variante enumerada (un plan de pospago, por ejemplo). */
57
+ export interface CommissionVariant extends CommissionValuePair {
58
+ variantId: string;
59
+ label: string;
60
+ }
61
+
62
+ /** Una variante por forma de pago. Los valores van en bps. */
63
+ export interface CommissionPaymentVariant extends CommissionValuePair {
64
+ /** `CASH` | `CREDIT` — cómo pagó el cliente. */
65
+ paymentType: string;
66
+ label: string;
67
+ }
68
+
69
+ /**
70
+ * La mecánica de una categoría, discriminada por `type`.
71
+ *
72
+ * `PRICE_TIER`, `FLAT`, `MATRIX` y `VARIANT` pagan en CENTAVOS; `PERCENT` y `PERCENT_BY_PAYMENT`
73
+ * pagan en BPS sobre el precio. Esa distinción la resuelve el evaluador con `valueKind`, no una rama
74
+ * por tipo.
75
+ */
76
+ export type CommissionMechanic =
77
+ | { type: CommissionMechanicTypeEnum.PRICE_TIER; tiers: CommissionPriceTier[] }
78
+ | { type: CommissionMechanicTypeEnum.FLAT; value: CommissionValuePair }
79
+ | { type: CommissionMechanicTypeEnum.PERCENT; value: CommissionValuePair }
80
+ | { type: CommissionMechanicTypeEnum.MATRIX; dimensions: string[]; cells: CommissionMatrixCell[] }
81
+ | { type: CommissionMechanicTypeEnum.VARIANT; variants: CommissionVariant[] }
82
+ | { type: CommissionMechanicTypeEnum.PERCENT_BY_PAYMENT; variants: CommissionPaymentVariant[] };
83
+
84
+ // ─────────────────────────────────────────────────────────────────────────────
85
+ // Cuotas
86
+ // ─────────────────────────────────────────────────────────────────────────────
87
+
88
+ /** Un nivel del acelerador. `factorBps` 10000 = 1.0×, 12000 = 1.2×. */
89
+ export interface CommissionQuotaLevel {
90
+ minAmountCents: number;
91
+ factorBps: number;
92
+ }
93
+
94
+ /**
95
+ * Una cuota. Binaria (un gate) o escalonada (N niveles con multiplicador).
96
+ *
97
+ * ⚠️ **Todas se resuelven al CERRAR el periodo**, nunca al devengar. Ese es el diseño de Jaime y es
98
+ * lo que evita el mecanismo más peligroso posible: reescribir filas ya devengadas cada vez que una
99
+ * venta nueva mueve el conteo.
100
+ */
101
+ export interface CommissionQuota {
102
+ quotaId: string;
103
+ name: string;
104
+ description: string | null;
105
+ active: boolean;
106
+ type: CommissionQuotaTypeEnum;
107
+ measure: CommissionQuotaMeasureEnum;
108
+ subject: CommissionQuotaSubjectEnum;
109
+ period: CommissionPeriodTypeEnum;
110
+ mode: CommissionQuotaModeEnum;
111
+ /** Solo `BINARY`. El umbral a alcanzar, en la unidad de `measure`. */
112
+ threshold: number | null;
113
+ /** Solo `TIERED`. Ordenados de menor a mayor. */
114
+ levels: CommissionQuotaLevel[] | null;
115
+ /** Si el valor `withQuota` REEMPLAZA al base (`true`) o se suma. Hoy siempre `true`. */
116
+ replacesBase: boolean;
117
+ }
118
+
119
+ // ─────────────────────────────────────────────────────────────────────────────
120
+ // Categorías, excepciones y add-ons
121
+ // ─────────────────────────────────────────────────────────────────────────────
122
+
123
+ /**
124
+ * Cómo se decide que una venta pertenece a esta categoría.
125
+ *
126
+ * Vive DENTRO del snapshot (versionado e inmutable con el plan). Si viviera en el código del motor,
127
+ * cambiar el mapa reescribiría el pasado.
128
+ */
129
+ export interface CommissionCategoryMatch {
130
+ skus: string[];
131
+ brands: string[];
132
+ /** Prefijos de SKU, para familias completas. */
133
+ skuPrefixes: string[];
134
+ }
135
+
136
+ /**
137
+ * Una excepción: un SKU o una marca que paga distinto que su categoría.
138
+ *
139
+ * Precedencia: **SKU gana sobre BRAND, y BRAND sobre la mecánica.**
140
+ */
141
+ export interface CommissionException {
142
+ exceptionId: string;
143
+ type: CommissionExceptionTypeEnum;
144
+ /** El SKU exacto o el nombre de la marca, según `type`. */
145
+ target: string;
146
+ label: string;
147
+ value: CommissionValuePair;
148
+ }
149
+
150
+ /** Una categoría de producto con su mecánica, su cuota y sus excepciones. */
151
+ export interface CommissionCategory {
152
+ categoryId: string;
153
+ name: string;
154
+ icon: string | null;
155
+ description: string | null;
156
+ match: CommissionCategoryMatch;
157
+ /** `null` = la categoría NO está condicionada a ninguna cuota (Pospago, Zmotos). */
158
+ quotaId: string | null;
159
+ priceReference: CommissionPriceReferenceEnum;
160
+ mechanic: CommissionMechanic;
161
+ exceptions: CommissionException[];
162
+ }
163
+
164
+ /** Un add-on: monto fijo que se suma FUERA del stacking y fuera del máximo. */
165
+ export interface CommissionAddOn {
166
+ addOnId: string;
167
+ label: string;
168
+ amountCents: number;
169
+ active: boolean;
170
+ }
171
+
172
+ // ─────────────────────────────────────────────────────────────────────────────
173
+ // El snapshot
174
+ // ─────────────────────────────────────────────────────────────────────────────
175
+
176
+ /**
177
+ * Una versión del plan. Publicada es inmutable; el borrador se pisa.
178
+ *
179
+ * `storeOverrideBps` es un **pago a OTRA persona** (el admin de la tienda) sobre las ventas de su
180
+ * equipo. Se modela pero **no se devenga** en el primer corte, hasta que se defina quién es ese
181
+ * admin en `retail-org-business`.
182
+ */
183
+ export interface CommissionPlanSnapshot {
184
+ retailerId: string;
185
+ /** `null` mientras es borrador: el ULID se asigna al publicar. */
186
+ snapshotId: string | null;
187
+ status: CommissionPlanStatusEnum;
188
+ effectiveFrom: string;
189
+ categories: CommissionCategory[];
190
+ quotas: CommissionQuota[];
191
+ addOns: CommissionAddOn[];
192
+ /** `storeId` → bps adicionales para el admin de esa tienda. */
193
+ storeOverrideBps: Record<string, number>;
194
+ changeNote: string | null;
195
+ publishedBy: string | null;
196
+ publishedAt: string | null;
197
+ updatedAt: string | null;
198
+ updatedBy: string | null;
199
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Estado de una fila de devengo.
3
+ *
4
+ * ACCRUED - Devengada con su monto base. La cuota y el factor TODAVÍA no están resueltos.
5
+ * PAID - Liquidada al cerrar el corte: ya tiene `quotaMet`, `quotaFactorBps` y `settledAmountCents`.
6
+ * REVERSED - Revertida por cancelación de la venta, con el corte aún abierto.
7
+ *
8
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
9
+ */
10
+ export enum CommissionAccrualStatusEnum {
11
+ ACCRUED = 'ACCRUED',
12
+ PAID = 'PAID',
13
+ REVERSED = 'REVERSED',
14
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Los pasos que puede registrar la traza de cálculo.
3
+ *
4
+ * La traza es una unión CERRADA por este enum, sin campos libres: es el vehículo más probable de
5
+ * fuga de PII del comprador y no debe haber dónde meterla.
6
+ *
7
+ * MECHANIC - Se evaluó la mecánica de la categoría.
8
+ * EXCEPTION - Una excepción por SKU o marca reemplazó el valor de la mecánica.
9
+ * ADDON - Se sumó un add-on. Van FUERA del stacking.
10
+ * QUOTA - Se resolvió la cuota (binaria o escalonada). Ocurre al CERRAR, no al devengar.
11
+ * ADJUSTMENT - Un ajuste manual del corte.
12
+ * NO_CATEGORY - El SKU no matcheó ninguna categoría del plan: devenga 0 y queda visible.
13
+ *
14
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
15
+ */
16
+ export enum CommissionCalcStepEnum {
17
+ MECHANIC = 'MECHANIC',
18
+ EXCEPTION = 'EXCEPTION',
19
+ ADDON = 'ADDON',
20
+ QUOTA = 'QUOTA',
21
+ ADJUSTMENT = 'ADJUSTMENT',
22
+ NO_CATEGORY = 'NO_CATEGORY',
23
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Sobre qué aplica una excepción del plan.
3
+ *
4
+ * Precedencia: SKU gana sobre BRAND, y BRAND sobre la mecánica de la categoría.
5
+ *
6
+ * SKU - Un SKU exacto.
7
+ * BRAND - Una marca completa.
8
+ *
9
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
10
+ */
11
+ export enum CommissionExceptionTypeEnum {
12
+ SKU = 'SKU',
13
+ BRAND = 'BRAND',
14
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Las 6 formas de calcular la comisión de una categoría (D12).
3
+ *
4
+ * Son el producto cartesiano de dos ejes —cómo se elige la celda y en qué unidad paga— y por eso
5
+ * un solo evaluador las cubre todas: `toCells(mechanic)` normaliza cualquiera a
6
+ * `[{ match, baseValue, withQuotaValue }]` + `valueKind`.
7
+ *
8
+ * PRICE_TIER - Por rango de precio del equipo (D/C/B/A). Equipos.
9
+ * FLAT - Monto fijo por unidad. MiFi, PayJoy.
10
+ * PERCENT - Porcentaje del precio, en bps. Accesorios.
11
+ * MATRIX - Celda por N dimensiones. SIMs: operador × origen.
12
+ * VARIANT - Monto por variante enumerada. Pospago: plan $339 → $220.
13
+ * PERCENT_BY_PAYMENT - Porcentaje según forma de pago. Zmotos: contado 2% / crédito 4%.
14
+ *
15
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
16
+ */
17
+ export enum CommissionMechanicTypeEnum {
18
+ PRICE_TIER = 'PRICE_TIER',
19
+ FLAT = 'FLAT',
20
+ PERCENT = 'PERCENT',
21
+ MATRIX = 'MATRIX',
22
+ VARIANT = 'VARIANT',
23
+ PERCENT_BY_PAYMENT = 'PERCENT_BY_PAYMENT',
24
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Quién cobra una fila de devengo.
3
+ *
4
+ * SELLER - El vendedor que originó la venta. Único que se devenga en el primer corte.
5
+ * STORE_ADMIN - El admin de la tienda, por el `storeOverrideBps`. ⚠️ Modelado pero NO devengado
6
+ * hasta que se defina quién es ese admin en `retail-org-business`.
7
+ *
8
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
9
+ */
10
+ export enum CommissionPayeeTypeEnum {
11
+ SELLER = 'SELLER',
12
+ STORE_ADMIN = 'STORE_ADMIN',
13
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Estado del corte semanal.
3
+ *
4
+ * OPEN - Acumulando devengos. Nadie lo «abre»: el ítem META se crea con upsert al primer ajuste o al cerrar.
5
+ * CLOSING - Cierre encolado o corriendo. Es el candado: sin este estado, dos clicks en «Cerrar»
6
+ * encolan dos workers que liquidan en paralelo, y la UI no puede distinguir «abierto» de «cerrando».
7
+ * CLOSED - Terminado. Es la ÚLTIMA escritura del worker, no la primera: significa «se pagó todo»,
8
+ * no «se empezó a pagar».
9
+ *
10
+ * ⚠️ No existe `PAID`: **Fiado no dispersa el pago**. El archivo se entrega a la nómina de LUGA.
11
+ *
12
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
13
+ */
14
+ export enum CommissionPayoutStatusEnum {
15
+ OPEN = 'OPEN',
16
+ CLOSING = 'CLOSING',
17
+ CLOSED = 'CLOSED',
18
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Periodicidad de la cuota. El modal del plan ofrece las tres.
3
+ *
4
+ * ⚠️ El primer corte implementa SOLO `WEEKLY`; las otras dos se rechazan con error tipado en vez de
5
+ * calcularse mal en silencio.
6
+ *
7
+ * WEEKLY - Semanal. `M6_ADMIN` §9.3 y §9.4: corte de martes a lunes.
8
+ * BIWEEKLY - Quincenal. No implementada.
9
+ * MONTHLY - Mensual. No implementada.
10
+ *
11
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
12
+ */
13
+ export enum CommissionPeriodTypeEnum {
14
+ WEEKLY = 'WEEKLY',
15
+ BIWEEKLY = 'BIWEEKLY',
16
+ MONTHLY = 'MONTHLY',
17
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Estado de una versión del plan de comisiones.
3
+ *
4
+ * DRAFT - Borrador en edición. Ítem ÚNICO (`sk = DRAFT`): se pisa, no versiona.
5
+ * PUBLISHED - Snapshot sellado y vigente. Apuntado por el puntero `ACTIVE`.
6
+ * SUPERSEDED - Snapshot que fue vigente y ya no lo es. Inmutable: lo devengado con él ya se devengó.
7
+ *
8
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
9
+ */
10
+ export enum CommissionPlanStatusEnum {
11
+ DRAFT = 'DRAFT',
12
+ PUBLISHED = 'PUBLISHED',
13
+ SUPERSEDED = 'SUPERSEDED',
14
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Contra qué precio se evalúa la mecánica de una categoría.
3
+ *
4
+ * ⚠️ En el primer corte las tres resuelven contra el mismo número: la venta trae UN precio
5
+ * (`equipmentPriceCents`, con `amountCents` de respaldo). Se modela porque el plan de Jaime lo
6
+ * declara por categoría y borrarlo obligaría a migrar los snapshots cuando lleguen los tres precios.
7
+ *
8
+ * LIST - Precio de lista.
9
+ * FINAL - Precio final cobrado.
10
+ * PUBLIC - Precio público sugerido.
11
+ *
12
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
13
+ */
14
+ export enum CommissionPriceReferenceEnum {
15
+ LIST = 'LIST',
16
+ FINAL = 'FINAL',
17
+ PUBLIC = 'PUBLIC',
18
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Qué se mide para evaluar la cuota.
3
+ *
4
+ * UNITS - Piezas vendidas en el periodo.
5
+ * SK_AMOUNT - Monto vendido, contando SOLO las ventas con financiera SUREKEEP.
6
+ *
7
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
8
+ */
9
+ export enum CommissionQuotaMeasureEnum {
10
+ UNITS = 'UNITS',
11
+ SK_AMOUNT = 'SK_AMOUNT',
12
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Cómo se aplica la cuota al alcanzarse.
3
+ *
4
+ * Queda con un solo valor A PROPÓSITO: es un campo enumerable del dominio, no un flag. Guardarlo
5
+ * como booleano obligaría a migrar los snapshots el día que aparezca un modo prospectivo.
6
+ *
7
+ * RETROACTIVE - Aplica a TODO lo devengado en el periodo, no solo a lo que vino después.
8
+ *
9
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
10
+ */
11
+ export enum CommissionQuotaModeEnum {
12
+ RETROACTIVE = 'RETROACTIVE',
13
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Sobre quién se acumula la cuota.
3
+ *
4
+ * SELLER - Por vendedor. Único implementado en el primer corte.
5
+ * STORE - Por tienda: la alcanza el equipo completo.
6
+ *
7
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
8
+ */
9
+ export enum CommissionQuotaSubjectEnum {
10
+ SELLER = 'SELLER',
11
+ STORE = 'STORE',
12
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tipo de cuota. Cuota y acelerador quedaron unificados en un solo concepto (Jaime, 28-jul).
3
+ *
4
+ * BINARY - Un gate: alcanzarlo cambia de columna (`base` → `withQuota`) para las categorías que la referencian.
5
+ * TIERED - N niveles con multiplicador RETROACTIVO sobre el resultado. Es el «acelerador».
6
+ *
7
+ * SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
8
+ */
9
+ export enum CommissionQuotaTypeEnum {
10
+ BINARY = 'BINARY',
11
+ TIERED = 'TIERED',
12
+ }
@@ -0,0 +1,23 @@
1
+ // Enums
2
+ export * from './enums/CommissionPlanStatusEnum';
3
+ export * from './enums/CommissionMechanicTypeEnum';
4
+ export * from './enums/CommissionPriceReferenceEnum';
5
+ export * from './enums/CommissionQuotaTypeEnum';
6
+ export * from './enums/CommissionQuotaMeasureEnum';
7
+ export * from './enums/CommissionQuotaSubjectEnum';
8
+ export * from './enums/CommissionPeriodTypeEnum';
9
+ export * from './enums/CommissionQuotaModeEnum';
10
+ export * from './enums/CommissionAccrualStatusEnum';
11
+ export * from './enums/CommissionPayoutStatusEnum';
12
+ export * from './enums/CommissionPayeeTypeEnum';
13
+ export * from './enums/CommissionExceptionTypeEnum';
14
+ export * from './enums/CommissionCalcStepEnum';
15
+
16
+ // Entidades del dominio
17
+ export * from './dtos/CommissionPlan';
18
+ export * from './dtos/CommissionCalcTrace';
19
+ export * from './dtos/CommissionAccrual';
20
+ export * from './dtos/CommissionPayout';
21
+
22
+ // Contratos HTTP — uno por endpoint
23
+ export * from './dtos/CommissionApi';
@@ -1,10 +0,0 @@
1
- /**
2
- * Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
3
- * Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
4
- */
5
- export declare enum SelfieSourceEnum {
6
- /** Matcheó el verificationId de la verificación vigente en People. */
7
- VERIFICATION = "VERIFICATION",
8
- /** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
9
- LATEST = "LATEST"
10
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SelfieSourceEnum = void 0;
4
- /**
5
- * Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
6
- * Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
7
- */
8
- var SelfieSourceEnum;
9
- (function (SelfieSourceEnum) {
10
- /** Matcheó el verificationId de la verificación vigente en People. */
11
- SelfieSourceEnum["VERIFICATION"] = "VERIFICATION";
12
- /** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
13
- SelfieSourceEnum["LATEST"] = "LATEST";
14
- })(SelfieSourceEnum || (exports.SelfieSourceEnum = SelfieSourceEnum = {}));
@@ -1,11 +0,0 @@
1
- /**
2
- * Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
3
- * cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
4
- * (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
5
- */
6
- export declare class UpdateActivationChecklistRequest {
7
- downPayment?: boolean;
8
- contractSigned?: boolean;
9
- imeiEnrolled?: boolean;
10
- lockVerified?: boolean;
11
- }
@@ -1,46 +0,0 @@
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.UpdateActivationChecklistRequest = void 0;
13
- const class_transformer_1 = require("class-transformer");
14
- const class_validator_1 = require("class-validator");
15
- /**
16
- * Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
17
- * cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
18
- * (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
19
- */
20
- class UpdateActivationChecklistRequest {
21
- }
22
- exports.UpdateActivationChecklistRequest = UpdateActivationChecklistRequest;
23
- __decorate([
24
- (0, class_transformer_1.Expose)(),
25
- (0, class_validator_1.IsOptional)(),
26
- (0, class_validator_1.IsBoolean)(),
27
- __metadata("design:type", Boolean)
28
- ], UpdateActivationChecklistRequest.prototype, "downPayment", void 0);
29
- __decorate([
30
- (0, class_transformer_1.Expose)(),
31
- (0, class_validator_1.IsOptional)(),
32
- (0, class_validator_1.IsBoolean)(),
33
- __metadata("design:type", Boolean)
34
- ], UpdateActivationChecklistRequest.prototype, "contractSigned", void 0);
35
- __decorate([
36
- (0, class_transformer_1.Expose)(),
37
- (0, class_validator_1.IsOptional)(),
38
- (0, class_validator_1.IsBoolean)(),
39
- __metadata("design:type", Boolean)
40
- ], UpdateActivationChecklistRequest.prototype, "imeiEnrolled", void 0);
41
- __decorate([
42
- (0, class_transformer_1.Expose)(),
43
- (0, class_validator_1.IsOptional)(),
44
- (0, class_validator_1.IsBoolean)(),
45
- __metadata("design:type", Boolean)
46
- ], UpdateActivationChecklistRequest.prototype, "lockVerified", void 0);
@@ -1,11 +0,0 @@
1
- /**
2
- * Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
3
- * Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
4
- * un CLIENTE nunca es `ALL`.
5
- * @enum {string}
6
- */
7
- export declare enum ClientLevelEnum {
8
- BRONZE = "BRONZE",
9
- SILVER = "SILVER",
10
- GOLD = "GOLD"
11
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClientLevelEnum = void 0;
4
- /**
5
- * Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
6
- * Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
7
- * un CLIENTE nunca es `ALL`.
8
- * @enum {string}
9
- */
10
- var ClientLevelEnum;
11
- (function (ClientLevelEnum) {
12
- ClientLevelEnum["BRONZE"] = "BRONZE";
13
- ClientLevelEnum["SILVER"] = "SILVER";
14
- ClientLevelEnum["GOLD"] = "GOLD";
15
- })(ClientLevelEnum || (exports.ClientLevelEnum = ClientLevelEnum = {}));
@@ -1,6 +0,0 @@
1
- export declare class CancelFundingReferenceRequest {
2
- /** Referencia Passport (PK de EqualityFundingReference_GT). */
3
- reference: string;
4
- directoryId: string;
5
- idempotencyKey: string;
6
- }
@@ -1,7 +0,0 @@
1
- import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
2
- import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
3
- export declare class CancelFundingReferenceResponse {
4
- reference: string;
5
- status: BenefitPaymentStatusEnum;
6
- errorCode?: WalletFundingErrorCodeEnum;
7
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CancelFundingReferenceResponse = void 0;
4
- class CancelFundingReferenceResponse {
5
- }
6
- exports.CancelFundingReferenceResponse = CancelFundingReferenceResponse;
@@ -1,11 +0,0 @@
1
- /**
2
- * Request del cancel via Centro de Beneficios (spec 13 v2.0).
3
- * `reference` viaja en el path, `directoryId` se resuelve del JWT.
4
- * `providerModuleName` permite al marketplace rutear al publisher correcto
5
- * sin tener que persistir el mapping (el wallet-app sabe el moduleName
6
- * porque vino en la respuesta del authorize).
7
- */
8
- export declare class CancelFundingRequest {
9
- idempotencyKey: string;
10
- providerModuleName: string;
11
- }
@@ -1,14 +0,0 @@
1
- import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
2
- import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
3
- /**
4
- * Response del cancel via Centro de Beneficios (spec 13 v2.0).
5
- * `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
6
- * REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
7
- * (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
8
- */
9
- export declare class CancelFundingResponse {
10
- reference: string;
11
- status: BenefitPaymentStatusEnum;
12
- errorCode?: WalletFundingErrorCodeEnum;
13
- message?: string;
14
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CancelFundingResponse = void 0;
4
- /**
5
- * Response del cancel via Centro de Beneficios (spec 13 v2.0).
6
- * `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
7
- * REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
8
- * (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
9
- */
10
- class CancelFundingResponse {
11
- }
12
- exports.CancelFundingResponse = CancelFundingResponse;
@@ -1,3 +0,0 @@
1
- export declare class CancelWalletFundingRequest {
2
- idempotencyKey: string;
3
- }