sigo-entities 1.2.452 → 1.2.453
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.
- package/REPORTE_ESTRUCTURA_2026-08-31.md +215 -215
- package/dist/index.d.mts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +0 -12
- package/dist/index.mjs +11 -23
- package/package.json +1 -1
- package/.claude/CLAUDE.md +0 -70
- package/.claude/settings.json +0 -21
- package/.claude/skills/mdl-administracion/SKILL.md +0 -60
- package/.claude/skills/mdl-configuracion/SKILL.md +0 -49
- package/.claude/skills/ope-im/SKILL.md +0 -71
- package/.claude/skills/ope-logistica/SKILL.md +0 -60
- package/.claude/skills/ope-pex/SKILL.md +0 -106
- package/.claude/skills/shared-dtos/SKILL.md +0 -76
|
@@ -1,215 +1,215 @@
|
|
|
1
|
-
# Reporte — Estructura de sigo-entities
|
|
2
|
-
|
|
3
|
-
**Fecha:** 2026-08-31
|
|
4
|
-
**Autor:** Brayan Andrés Valero Pinzón — Hermes Agent (sigo-frontend-dev)
|
|
5
|
-
**Destinatario:** Ingeniero Josue — Repositorio `sigo-entities`
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Resumen
|
|
10
|
-
|
|
11
|
-
Se detectaron **47 carpetas con nombres incorrectos** (sin guiones), **30 archivos `shared/index.ts` con Entity + DTO + `_id` mezclados**, y **3 carpetas en configuracion que ya fueron corregidas**.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## ✅ CORREGIDAS (3 archivos)
|
|
16
|
-
|
|
17
|
-
Las siguientes 3 Entities fueron corregidas siguiendo el patrón correcto:
|
|
18
|
-
|
|
19
|
-
| Carpeta | Archivos creados | Cambios |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| `theme config country` | `shared/theme-config-country-entity.ts` | Eliminado `_id`, DTOs inline en entity.ts, `shared/index.ts` solo exporta entity |
|
|
22
|
-
| `theme config user` | `shared/dto/favorito-dto.ts` + `shared/theme-config-user-entity.ts` | Eliminado `_id`, DTOs separados en carpeta `dto/`, `shared/index.ts` solo exporta entity |
|
|
23
|
-
| `scraping credential` | `shared/scraping-credential-entity.ts` | Eliminado `_id`, `shared/index.ts` solo exporta entity |
|
|
24
|
-
|
|
25
|
-
**Patrón aplicado:**
|
|
26
|
-
```
|
|
27
|
-
carpeta/
|
|
28
|
-
shared/
|
|
29
|
-
dto/
|
|
30
|
-
nombre-dto.ts ← DTOs aquí
|
|
31
|
-
nombre-entity.ts ← solo la Entity aquí
|
|
32
|
-
index.ts ← solo export * from './nombre-entity'
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## ❌ CARPETA 1: Carpetas con nombres SIN guiones (47 carpetas)
|
|
38
|
-
|
|
39
|
-
**Regla:** Nombres compuestos deben usar guiones (`-`) en lugar de espacios.
|
|
40
|
-
|
|
41
|
-
### Configuración (10 carpetas)
|
|
42
|
-
| Actual | Debería ser |
|
|
43
|
-
|---|---|
|
|
44
|
-
| `cargo personal` | `cargo-personal` |
|
|
45
|
-
| `contrato ot` | `contrato-ot` |
|
|
46
|
-
| `opcion sistema` | `opcion-sistema` |
|
|
47
|
-
| ~~`scraping credential`~~ | ~~`scraping-credential`~~ ✅ renombrada |
|
|
48
|
-
| ~~`theme config country`~~ | ~~`theme-config-country`~~ ✅ renombrada |
|
|
49
|
-
| ~~`theme config user`~~ | ~~`theme-config-user`~~ ✅ renombrada |
|
|
50
|
-
| `tipo clave` | `tipo-clave` |
|
|
51
|
-
| `tipo especialidad mo` | `tipo-especialidad-mo` |
|
|
52
|
-
| `tipo opcion sistema` | `tipo-opcion-sistema` |
|
|
53
|
-
| `usuarios autoinventario` | `usuarios-autoinventario` |
|
|
54
|
-
|
|
55
|
-
### Administración (8 carpetas)
|
|
56
|
-
| Actual | Debería ser |
|
|
57
|
-
|---|---|
|
|
58
|
-
| `chile 9512 paquetizado mano obra` | `chile-9512-paquetizado-mano-obra` |
|
|
59
|
-
| `chile 9512 paquetizado material` | `chile-9512-paquetizado-material` |
|
|
60
|
-
| `key integracion` | `key-integracion` |
|
|
61
|
-
| `mail structure` | `mail-structure` |
|
|
62
|
-
| `precio especialidad` | `precio-especialidad` |
|
|
63
|
-
| `precio material` | `precio-material` |
|
|
64
|
-
| `unidad obra material` | `unidad-obra-material` |
|
|
65
|
-
| `zona trabajo` | `zona-trabajo` |
|
|
66
|
-
|
|
67
|
-
### Logística (17 carpetas)
|
|
68
|
-
| Actual | Debería ser |
|
|
69
|
-
|---|---|
|
|
70
|
-
| `almacen extra` | `almacen-extra` |
|
|
71
|
-
| `atencion ordenes liquidadas` | `atencion-ordenes-liquidadas` |
|
|
72
|
-
| `consumo material` | `consumo-material` |
|
|
73
|
-
| `consumos P117` | `consumos-P117` |
|
|
74
|
-
| `devolucion almacen` | `devolucion-almacen` |
|
|
75
|
-
| `gran familia item` | `gran-familia-item` |
|
|
76
|
-
| `ingreso almacen` | `ingreso-almacen` |
|
|
77
|
-
| `movimiento almacen` | `movimiento-almacen` |
|
|
78
|
-
| `salida almacen` | `salida-almacen` |
|
|
79
|
-
| `stock almacen` | `stock-almacen` |
|
|
80
|
-
| `stock almacen equipos` | `stock-almacen-equipos` |
|
|
81
|
-
| `stock personal` | `stock-personal` |
|
|
82
|
-
| `stock personal equipos` | `stock-personal-equipos` |
|
|
83
|
-
| `tipo almacen` | `tipo-almacen` |
|
|
84
|
-
| `tipo movimiento almacen` | `tipo-movimiento-almacen` |
|
|
85
|
-
| `tipo stock` | `tipo-stock` |
|
|
86
|
-
| `transaccion folios` | `transaccion-folios` |
|
|
87
|
-
| `unidad medida` | `unidad--medida` |
|
|
88
|
-
|
|
89
|
-
### Programados (10 carpetas)
|
|
90
|
-
| Actual | Debería ser |
|
|
91
|
-
|---|---|
|
|
92
|
-
| `centro costos` | `centro-costos` |
|
|
93
|
-
| `mano obra global` | `mano-obra-global` |
|
|
94
|
-
| `rm actividad` | `rm-actividad` |
|
|
95
|
-
| `rm comuna` | `rm-comuna` |
|
|
96
|
-
| `rm mano obra` | `rm-mano-obra` |
|
|
97
|
-
| `rm paquetizado` | `rm-paquetizado` |
|
|
98
|
-
| `tipo actividad mo` | `tipo-actividad-mo` |
|
|
99
|
-
| `tipo obra` | `tipo-obra` |
|
|
100
|
-
| `model mo sql` | `model-mo-sql` |
|
|
101
|
-
| `model obra sql` | `model-obra-sql` |
|
|
102
|
-
|
|
103
|
-
### Operativa (7 carpetas)
|
|
104
|
-
| Actual | Debería ser |
|
|
105
|
-
|---|---|
|
|
106
|
-
| `order stock` | `order-stock` |
|
|
107
|
-
| `order stock store` | `order-stock-store` |
|
|
108
|
-
| `request number TTL` | `request-number-TTL` |
|
|
109
|
-
| `Tdc order stock` | `Tdc-order-stock` |
|
|
110
|
-
| `TOA Claro order stock` | `TOA-Claro-order-stock` |
|
|
111
|
-
| `TOA orden liquidacion` | `TOA-orden-liquidacion` |
|
|
112
|
-
| `TOA order stock` | `TOA-order-stock` |
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## ❌ CARPETA 2: `shared/index.ts` con Entity + DTO + `_id` mezclados (30 carpetas)
|
|
117
|
-
|
|
118
|
-
**Regla:** `shared/index.ts` debe contener SOLO la Entity. Los DTOs deben estar en `shared/dto/`.
|
|
119
|
-
|
|
120
|
-
### Configuración (3 carpetas — ya corregidas)
|
|
121
|
-
| Carpeta | Entity | DTOs presentes | `_id` | Estado |
|
|
122
|
-
|---|---|---|---|---|
|
|
123
|
-
| `configuracion/ theme-config-country/shared/index.ts` | `ThemeConfigCountryENTITY` | `ImgLogoNavBarDTO`, `ThemeCountryManualDTO` | ✅ Línea 50 | ✅ CORREGIDA (carpeta renombrada, DTOs en `shared/dto/`, `_id` eliminado) |
|
|
124
|
-
| `configuracion/ theme-config-user/shared/index.ts` | `ThemeConfigUserENTITY` | `FavoritoDTO` | ✅ Línea 33 | ✅ CORREGIDA (carpeta renombrada, DTOs en `shared/dto/`, `_id` eliminado) |
|
|
125
|
-
| `configuracion/ scraping-credential/shared/index.ts` | `ScrapingCredentialENTITY` | `CodigoNombreDTO` | ✅ Línea 10 | ✅ CORREGIDA (carpeta renombrada, `_id` eliminado) |
|
|
126
|
-
|
|
127
|
-
### Logística (2 carpetas)
|
|
128
|
-
| Carpeta | Entity | DTOs presentes | `_id` |
|
|
129
|
-
|---|---|---|---|
|
|
130
|
-
| `logistica/stock personal/shared/index.ts` | `StockPersonalENTITY` | Varios | ✅ |
|
|
131
|
-
| `logistica/stock personal equipos/shared/index.ts` | `StockPersonalEquiposENTITY` | Varios | ✅ |
|
|
132
|
-
|
|
133
|
-
### Operativa/Procesos (25 carpetas)
|
|
134
|
-
| Carpeta | Entity | `_id` |
|
|
135
|
-
|---|---|---|
|
|
136
|
-
| `operativa/procesos/altas_nvt_order/shared/index.ts` | `AltasNVTOrderENTITY` | ✅ Línea 35 |
|
|
137
|
-
| `operativa/procesos/bantel/shared/index.ts` | `BantelENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
138
|
-
| `operativa/procesos/claro_peru9112/shared/index.ts` | `Peru9112ClaroENTITY` | ✅ Línea 32 |
|
|
139
|
-
| `operativa/procesos/cliente_waoo/shared/index.ts` | `ClienteWAOOENTITY` | ❌ `line_id` (equivalente a `_id`) |
|
|
140
|
-
| `operativa/procesos/fibramas_order/shared/index.ts` | `Peru9112FibramasENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
141
|
-
| `operativa/procesos/fibramas_order_db/shared/index.ts` | `Peru9112FibramasENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
142
|
-
| `operativa/procesos/mifibra_db/shared/index.ts` | `MiFibraENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
143
|
-
| `operativa/procesos/order stock/shared/index.ts` | `OrderStockENTITY` | ✅ |
|
|
144
|
-
| `operativa/procesos/order stock store/shared/index.ts` | `OrderStockStoreENTITY` | ✅ |
|
|
145
|
-
| `operativa/procesos/request number TTL/shared/index.ts` | `RequestNumberTTLENTITY` | ✅ Línea 14 |
|
|
146
|
-
| `operativa/procesos/somacyl_order/shared/index.ts` | `SomacylOrderENTITY` | ✅ Línea 32 |
|
|
147
|
-
| `operativa/procesos/stb_dth_toaperu/shared/index.ts` | `STB_DTH_ToaENTITY` | ✅ |
|
|
148
|
-
| `operativa/procesos/Tdc order stock/shared/index.ts` | `TdcOrderStockENTITY` | ✅ |
|
|
149
|
-
| `operativa/procesos/TOA Claro order stock/shared/index.ts` | `TOAClaroOrderStockENTITY` | ✅ |
|
|
150
|
-
| `operativa/procesos/TOA orden liquidacion/shared/index.ts` | `TOAOrdenLiquidacionENTITY` | ✅ |
|
|
151
|
-
| `operativa/procesos/TOA orden liquidacion_db/shared/index.ts` | `TOAOrdenLiquidacionENTITYDB` | ✅ Línea 21 |
|
|
152
|
-
| `operativa/procesos/TOA order stock/shared/index.ts` | `TOAOrderStockENTITY` | ✅ |
|
|
153
|
-
| `operativa/procesos/toa_claro/shared/index.ts` | `ToaClaroENTITY` | ✅ |
|
|
154
|
-
| `operativa/procesos/toa_movistar/shared/index.ts` | `Peru9112TOAENTITY` | ✅ Línea 30 |
|
|
155
|
-
| `operativa/procesos/toa_movistar_db/shared/index.ts` | `Peru9112TOAENTITYDB` | ✅ Línea 27 |
|
|
156
|
-
| `operativa/procesos/tuves/shared/index.ts` | `TuvesENTITY` | ✅ Línea 30 |
|
|
157
|
-
| `operativa/procesos/tuves_order_stock/shared/index.ts` | `TuvesOrderStockENTITY` | ✅ |
|
|
158
|
-
| `operativa/procesos/win_order/shared/index.ts` | `Peru9112WinENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
159
|
-
| `operativa/procesos/win_order_db/shared/index.ts` | `Peru9112WinENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## ❌ CARPETA 3: Estructura incorrecta general
|
|
164
|
-
|
|
165
|
-
**Patrón actual incorrecto (la mayoría de carpetas):**
|
|
166
|
-
```
|
|
167
|
-
carpeta-con-espacios/
|
|
168
|
-
shared/
|
|
169
|
-
index.ts ← contiene: Entity + DTOs + _id todo mezclado
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**Patrón correcto (patrón de referencia `navisionpreorden`):**
|
|
173
|
-
```
|
|
174
|
-
carpeta-con-guiones/
|
|
175
|
-
shared/
|
|
176
|
-
dto/
|
|
177
|
-
nombre-dto.ts
|
|
178
|
-
otro-dto.ts
|
|
179
|
-
nombre-entity.ts ← solo la Entity aquí
|
|
180
|
-
index.ts ← solo: export * from './nombre-entity'
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## 📋 Resumen de problemas por prioridad
|
|
186
|
-
|
|
187
|
-
| Prioridad | Problema | Cantidad | Impacto |
|
|
188
|
-
|---|---|---|---|
|
|
189
|
-
| **P0** | `_id` en Entities | 23 carpetas | Error de validación MongoDB: `_id must be a string` |
|
|
190
|
-
| **P0** | Entity + DTOs mezclados en `shared/index.ts` | 30 carpetas | Confusión de imports, violación de separación de responsabilidades |
|
|
191
|
-
| **P1** | Nombres de carpetas con espacios (sin guiones) | 47 carpetas | Inconsistencia con patrón LatasOS, problemas de import en Windows |
|
|
192
|
-
| **P2** | `shared/index.ts` sin carpeta `dto/` separada | 30 carpetas | DTOs no reutilizables, archivo index.ts inflado |
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## 📐 Patrón correcto de referencia
|
|
197
|
-
|
|
198
|
-
Archivo: `navisionpreorden/shared/navisionpreorden-entity.ts`
|
|
199
|
-
|
|
200
|
-
```typescript
|
|
201
|
-
// ✅ Sin _id
|
|
202
|
-
// ✅ Solo la Entity
|
|
203
|
-
// ✅ DTOs en carpeta shared/dto/
|
|
204
|
-
// ✅ Nombre de carpeta con guiones
|
|
205
|
-
// ✅ ID principal como número (ID_NavisionpreordenEntity)
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## 🔧 Acciones requeridas
|
|
211
|
-
|
|
212
|
-
1. **P0 — Eliminar `_id`** de 20 carpetas restantes (incluyendo `resource_id` y `line_id` como equivalentes) — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
213
|
-
2. **P0 — Separar DTOs de Entities** en 27 carpetas restantes — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
214
|
-
3. **P1 — Renombrar carpetas** de 44 carpetas restantes — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
215
|
-
4. **P2 — Actualizar `shared/index.ts`** en 27 carpetas restantes — 3 ya corregidas
|
|
1
|
+
# Reporte — Estructura de sigo-entities
|
|
2
|
+
|
|
3
|
+
**Fecha:** 2026-08-31
|
|
4
|
+
**Autor:** Brayan Andrés Valero Pinzón — Hermes Agent (sigo-frontend-dev)
|
|
5
|
+
**Destinatario:** Ingeniero Josue — Repositorio `sigo-entities`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Resumen
|
|
10
|
+
|
|
11
|
+
Se detectaron **47 carpetas con nombres incorrectos** (sin guiones), **30 archivos `shared/index.ts` con Entity + DTO + `_id` mezclados**, y **3 carpetas en configuracion que ya fueron corregidas**.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✅ CORREGIDAS (3 archivos)
|
|
16
|
+
|
|
17
|
+
Las siguientes 3 Entities fueron corregidas siguiendo el patrón correcto:
|
|
18
|
+
|
|
19
|
+
| Carpeta | Archivos creados | Cambios |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `theme config country` | `shared/theme-config-country-entity.ts` | Eliminado `_id`, DTOs inline en entity.ts, `shared/index.ts` solo exporta entity |
|
|
22
|
+
| `theme config user` | `shared/dto/favorito-dto.ts` + `shared/theme-config-user-entity.ts` | Eliminado `_id`, DTOs separados en carpeta `dto/`, `shared/index.ts` solo exporta entity |
|
|
23
|
+
| `scraping credential` | `shared/scraping-credential-entity.ts` | Eliminado `_id`, `shared/index.ts` solo exporta entity |
|
|
24
|
+
|
|
25
|
+
**Patrón aplicado:**
|
|
26
|
+
```
|
|
27
|
+
carpeta/
|
|
28
|
+
shared/
|
|
29
|
+
dto/
|
|
30
|
+
nombre-dto.ts ← DTOs aquí
|
|
31
|
+
nombre-entity.ts ← solo la Entity aquí
|
|
32
|
+
index.ts ← solo export * from './nombre-entity'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## ❌ CARPETA 1: Carpetas con nombres SIN guiones (47 carpetas)
|
|
38
|
+
|
|
39
|
+
**Regla:** Nombres compuestos deben usar guiones (`-`) en lugar de espacios.
|
|
40
|
+
|
|
41
|
+
### Configuración (10 carpetas)
|
|
42
|
+
| Actual | Debería ser |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `cargo personal` | `cargo-personal` |
|
|
45
|
+
| `contrato ot` | `contrato-ot` |
|
|
46
|
+
| `opcion sistema` | `opcion-sistema` |
|
|
47
|
+
| ~~`scraping credential`~~ | ~~`scraping-credential`~~ ✅ renombrada |
|
|
48
|
+
| ~~`theme config country`~~ | ~~`theme-config-country`~~ ✅ renombrada |
|
|
49
|
+
| ~~`theme config user`~~ | ~~`theme-config-user`~~ ✅ renombrada |
|
|
50
|
+
| `tipo clave` | `tipo-clave` |
|
|
51
|
+
| `tipo especialidad mo` | `tipo-especialidad-mo` |
|
|
52
|
+
| `tipo opcion sistema` | `tipo-opcion-sistema` |
|
|
53
|
+
| `usuarios autoinventario` | `usuarios-autoinventario` |
|
|
54
|
+
|
|
55
|
+
### Administración (8 carpetas)
|
|
56
|
+
| Actual | Debería ser |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `chile 9512 paquetizado mano obra` | `chile-9512-paquetizado-mano-obra` |
|
|
59
|
+
| `chile 9512 paquetizado material` | `chile-9512-paquetizado-material` |
|
|
60
|
+
| `key integracion` | `key-integracion` |
|
|
61
|
+
| `mail structure` | `mail-structure` |
|
|
62
|
+
| `precio especialidad` | `precio-especialidad` |
|
|
63
|
+
| `precio material` | `precio-material` |
|
|
64
|
+
| `unidad obra material` | `unidad-obra-material` |
|
|
65
|
+
| `zona trabajo` | `zona-trabajo` |
|
|
66
|
+
|
|
67
|
+
### Logística (17 carpetas)
|
|
68
|
+
| Actual | Debería ser |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `almacen extra` | `almacen-extra` |
|
|
71
|
+
| `atencion ordenes liquidadas` | `atencion-ordenes-liquidadas` |
|
|
72
|
+
| `consumo material` | `consumo-material` |
|
|
73
|
+
| `consumos P117` | `consumos-P117` |
|
|
74
|
+
| `devolucion almacen` | `devolucion-almacen` |
|
|
75
|
+
| `gran familia item` | `gran-familia-item` |
|
|
76
|
+
| `ingreso almacen` | `ingreso-almacen` |
|
|
77
|
+
| `movimiento almacen` | `movimiento-almacen` |
|
|
78
|
+
| `salida almacen` | `salida-almacen` |
|
|
79
|
+
| `stock almacen` | `stock-almacen` |
|
|
80
|
+
| `stock almacen equipos` | `stock-almacen-equipos` |
|
|
81
|
+
| `stock personal` | `stock-personal` |
|
|
82
|
+
| `stock personal equipos` | `stock-personal-equipos` |
|
|
83
|
+
| `tipo almacen` | `tipo-almacen` |
|
|
84
|
+
| `tipo movimiento almacen` | `tipo-movimiento-almacen` |
|
|
85
|
+
| `tipo stock` | `tipo-stock` |
|
|
86
|
+
| `transaccion folios` | `transaccion-folios` |
|
|
87
|
+
| `unidad medida` | `unidad--medida` |
|
|
88
|
+
|
|
89
|
+
### Programados (10 carpetas)
|
|
90
|
+
| Actual | Debería ser |
|
|
91
|
+
|---|---|
|
|
92
|
+
| `centro costos` | `centro-costos` |
|
|
93
|
+
| `mano obra global` | `mano-obra-global` |
|
|
94
|
+
| `rm actividad` | `rm-actividad` |
|
|
95
|
+
| `rm comuna` | `rm-comuna` |
|
|
96
|
+
| `rm mano obra` | `rm-mano-obra` |
|
|
97
|
+
| `rm paquetizado` | `rm-paquetizado` |
|
|
98
|
+
| `tipo actividad mo` | `tipo-actividad-mo` |
|
|
99
|
+
| `tipo obra` | `tipo-obra` |
|
|
100
|
+
| `model mo sql` | `model-mo-sql` |
|
|
101
|
+
| `model obra sql` | `model-obra-sql` |
|
|
102
|
+
|
|
103
|
+
### Operativa (7 carpetas)
|
|
104
|
+
| Actual | Debería ser |
|
|
105
|
+
|---|---|
|
|
106
|
+
| `order stock` | `order-stock` |
|
|
107
|
+
| `order stock store` | `order-stock-store` |
|
|
108
|
+
| `request number TTL` | `request-number-TTL` |
|
|
109
|
+
| `Tdc order stock` | `Tdc-order-stock` |
|
|
110
|
+
| `TOA Claro order stock` | `TOA-Claro-order-stock` |
|
|
111
|
+
| `TOA orden liquidacion` | `TOA-orden-liquidacion` |
|
|
112
|
+
| `TOA order stock` | `TOA-order-stock` |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## ❌ CARPETA 2: `shared/index.ts` con Entity + DTO + `_id` mezclados (30 carpetas)
|
|
117
|
+
|
|
118
|
+
**Regla:** `shared/index.ts` debe contener SOLO la Entity. Los DTOs deben estar en `shared/dto/`.
|
|
119
|
+
|
|
120
|
+
### Configuración (3 carpetas — ya corregidas)
|
|
121
|
+
| Carpeta | Entity | DTOs presentes | `_id` | Estado |
|
|
122
|
+
|---|---|---|---|---|
|
|
123
|
+
| `configuracion/ theme-config-country/shared/index.ts` | `ThemeConfigCountryENTITY` | `ImgLogoNavBarDTO`, `ThemeCountryManualDTO` | ✅ Línea 50 | ✅ CORREGIDA (carpeta renombrada, DTOs en `shared/dto/`, `_id` eliminado) |
|
|
124
|
+
| `configuracion/ theme-config-user/shared/index.ts` | `ThemeConfigUserENTITY` | `FavoritoDTO` | ✅ Línea 33 | ✅ CORREGIDA (carpeta renombrada, DTOs en `shared/dto/`, `_id` eliminado) |
|
|
125
|
+
| `configuracion/ scraping-credential/shared/index.ts` | `ScrapingCredentialENTITY` | `CodigoNombreDTO` | ✅ Línea 10 | ✅ CORREGIDA (carpeta renombrada, `_id` eliminado) |
|
|
126
|
+
|
|
127
|
+
### Logística (2 carpetas)
|
|
128
|
+
| Carpeta | Entity | DTOs presentes | `_id` |
|
|
129
|
+
|---|---|---|---|
|
|
130
|
+
| `logistica/stock personal/shared/index.ts` | `StockPersonalENTITY` | Varios | ✅ |
|
|
131
|
+
| `logistica/stock personal equipos/shared/index.ts` | `StockPersonalEquiposENTITY` | Varios | ✅ |
|
|
132
|
+
|
|
133
|
+
### Operativa/Procesos (25 carpetas)
|
|
134
|
+
| Carpeta | Entity | `_id` |
|
|
135
|
+
|---|---|---|
|
|
136
|
+
| `operativa/procesos/altas_nvt_order/shared/index.ts` | `AltasNVTOrderENTITY` | ✅ Línea 35 |
|
|
137
|
+
| `operativa/procesos/bantel/shared/index.ts` | `BantelENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
138
|
+
| `operativa/procesos/claro_peru9112/shared/index.ts` | `Peru9112ClaroENTITY` | ✅ Línea 32 |
|
|
139
|
+
| `operativa/procesos/cliente_waoo/shared/index.ts` | `ClienteWAOOENTITY` | ❌ `line_id` (equivalente a `_id`) |
|
|
140
|
+
| `operativa/procesos/fibramas_order/shared/index.ts` | `Peru9112FibramasENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
141
|
+
| `operativa/procesos/fibramas_order_db/shared/index.ts` | `Peru9112FibramasENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
142
|
+
| `operativa/procesos/mifibra_db/shared/index.ts` | `MiFibraENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
143
|
+
| `operativa/procesos/order stock/shared/index.ts` | `OrderStockENTITY` | ✅ |
|
|
144
|
+
| `operativa/procesos/order stock store/shared/index.ts` | `OrderStockStoreENTITY` | ✅ |
|
|
145
|
+
| `operativa/procesos/request number TTL/shared/index.ts` | `RequestNumberTTLENTITY` | ✅ Línea 14 |
|
|
146
|
+
| `operativa/procesos/somacyl_order/shared/index.ts` | `SomacylOrderENTITY` | ✅ Línea 32 |
|
|
147
|
+
| `operativa/procesos/stb_dth_toaperu/shared/index.ts` | `STB_DTH_ToaENTITY` | ✅ |
|
|
148
|
+
| `operativa/procesos/Tdc order stock/shared/index.ts` | `TdcOrderStockENTITY` | ✅ |
|
|
149
|
+
| `operativa/procesos/TOA Claro order stock/shared/index.ts` | `TOAClaroOrderStockENTITY` | ✅ |
|
|
150
|
+
| `operativa/procesos/TOA orden liquidacion/shared/index.ts` | `TOAOrdenLiquidacionENTITY` | ✅ |
|
|
151
|
+
| `operativa/procesos/TOA orden liquidacion_db/shared/index.ts` | `TOAOrdenLiquidacionENTITYDB` | ✅ Línea 21 |
|
|
152
|
+
| `operativa/procesos/TOA order stock/shared/index.ts` | `TOAOrderStockENTITY` | ✅ |
|
|
153
|
+
| `operativa/procesos/toa_claro/shared/index.ts` | `ToaClaroENTITY` | ✅ |
|
|
154
|
+
| `operativa/procesos/toa_movistar/shared/index.ts` | `Peru9112TOAENTITY` | ✅ Línea 30 |
|
|
155
|
+
| `operativa/procesos/toa_movistar_db/shared/index.ts` | `Peru9112TOAENTITYDB` | ✅ Línea 27 |
|
|
156
|
+
| `operativa/procesos/tuves/shared/index.ts` | `TuvesENTITY` | ✅ Línea 30 |
|
|
157
|
+
| `operativa/procesos/tuves_order_stock/shared/index.ts` | `TuvesOrderStockENTITY` | ✅ |
|
|
158
|
+
| `operativa/procesos/win_order/shared/index.ts` | `Peru9112WinENTITY` | ❌ `resource_id` (equivalente a `_id`) |
|
|
159
|
+
| `operativa/procesos/win_order_db/shared/index.ts` | `Peru9112WinENTITYDB` | ❌ `resource_id` (equivalente a `_id`) |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## ❌ CARPETA 3: Estructura incorrecta general
|
|
164
|
+
|
|
165
|
+
**Patrón actual incorrecto (la mayoría de carpetas):**
|
|
166
|
+
```
|
|
167
|
+
carpeta-con-espacios/
|
|
168
|
+
shared/
|
|
169
|
+
index.ts ← contiene: Entity + DTOs + _id todo mezclado
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Patrón correcto (patrón de referencia `navisionpreorden`):**
|
|
173
|
+
```
|
|
174
|
+
carpeta-con-guiones/
|
|
175
|
+
shared/
|
|
176
|
+
dto/
|
|
177
|
+
nombre-dto.ts
|
|
178
|
+
otro-dto.ts
|
|
179
|
+
nombre-entity.ts ← solo la Entity aquí
|
|
180
|
+
index.ts ← solo: export * from './nombre-entity'
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 📋 Resumen de problemas por prioridad
|
|
186
|
+
|
|
187
|
+
| Prioridad | Problema | Cantidad | Impacto |
|
|
188
|
+
|---|---|---|---|
|
|
189
|
+
| **P0** | `_id` en Entities | 23 carpetas | Error de validación MongoDB: `_id must be a string` |
|
|
190
|
+
| **P0** | Entity + DTOs mezclados en `shared/index.ts` | 30 carpetas | Confusión de imports, violación de separación de responsabilidades |
|
|
191
|
+
| **P1** | Nombres de carpetas con espacios (sin guiones) | 47 carpetas | Inconsistencia con patrón LatasOS, problemas de import en Windows |
|
|
192
|
+
| **P2** | `shared/index.ts` sin carpeta `dto/` separada | 30 carpetas | DTOs no reutilizables, archivo index.ts inflado |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 📐 Patrón correcto de referencia
|
|
197
|
+
|
|
198
|
+
Archivo: `navisionpreorden/shared/navisionpreorden-entity.ts`
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
// ✅ Sin _id
|
|
202
|
+
// ✅ Solo la Entity
|
|
203
|
+
// ✅ DTOs en carpeta shared/dto/
|
|
204
|
+
// ✅ Nombre de carpeta con guiones
|
|
205
|
+
// ✅ ID principal como número (ID_NavisionpreordenEntity)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 🔧 Acciones requeridas
|
|
211
|
+
|
|
212
|
+
1. **P0 — Eliminar `_id`** de 20 carpetas restantes (incluyendo `resource_id` y `line_id` como equivalentes) — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
213
|
+
2. **P0 — Separar DTOs de Entities** en 27 carpetas restantes — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
214
|
+
3. **P1 — Renombrar carpetas** de 44 carpetas restantes — 3 ya corregidas: `theme-config-country`, `theme-config-user`, `scraping-credential`
|
|
215
|
+
4. **P2 — Actualizar `shared/index.ts`** en 27 carpetas restantes — 3 ya corregidas
|
package/dist/index.d.mts
CHANGED
|
@@ -10369,8 +10369,13 @@ declare class UpdateThemeConfigCountryDto {
|
|
|
10369
10369
|
Pais: CodigoNombreDTO;
|
|
10370
10370
|
}
|
|
10371
10371
|
|
|
10372
|
+
/**
|
|
10373
|
+
* DTO para crear un ThemeConfigUser.
|
|
10374
|
+
* El _id lo genera MongoDB automáticamente (ObjectId).
|
|
10375
|
+
* La unicidad del registro se garantiza por el campo Identificacion
|
|
10376
|
+
* (que incluye la delegación: ej. "123456AL01").
|
|
10377
|
+
*/
|
|
10372
10378
|
declare class CreateThemeConfigUserDto {
|
|
10373
|
-
_id: string;
|
|
10374
10379
|
ID_Theme: number;
|
|
10375
10380
|
Identificacion: string;
|
|
10376
10381
|
Color: string;
|
|
@@ -10379,8 +10384,12 @@ declare class CreateThemeConfigUserDto {
|
|
|
10379
10384
|
Favoritos?: FavoritoDTO[];
|
|
10380
10385
|
}
|
|
10381
10386
|
|
|
10387
|
+
/**
|
|
10388
|
+
* DTO para actualizar un ThemeConfigUser.
|
|
10389
|
+
* El lookup en Mongo se hace por Identificacion (usuario + delegación).
|
|
10390
|
+
* No se requiere _id — MongoDB maneja su ObjectId internamente.
|
|
10391
|
+
*/
|
|
10382
10392
|
declare class UpdateThemeConfigUserDto {
|
|
10383
|
-
_id: string;
|
|
10384
10393
|
ID_Theme: number;
|
|
10385
10394
|
Identificacion: string;
|
|
10386
10395
|
Color: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -10369,8 +10369,13 @@ declare class UpdateThemeConfigCountryDto {
|
|
|
10369
10369
|
Pais: CodigoNombreDTO;
|
|
10370
10370
|
}
|
|
10371
10371
|
|
|
10372
|
+
/**
|
|
10373
|
+
* DTO para crear un ThemeConfigUser.
|
|
10374
|
+
* El _id lo genera MongoDB automáticamente (ObjectId).
|
|
10375
|
+
* La unicidad del registro se garantiza por el campo Identificacion
|
|
10376
|
+
* (que incluye la delegación: ej. "123456AL01").
|
|
10377
|
+
*/
|
|
10372
10378
|
declare class CreateThemeConfigUserDto {
|
|
10373
|
-
_id: string;
|
|
10374
10379
|
ID_Theme: number;
|
|
10375
10380
|
Identificacion: string;
|
|
10376
10381
|
Color: string;
|
|
@@ -10379,8 +10384,12 @@ declare class CreateThemeConfigUserDto {
|
|
|
10379
10384
|
Favoritos?: FavoritoDTO[];
|
|
10380
10385
|
}
|
|
10381
10386
|
|
|
10387
|
+
/**
|
|
10388
|
+
* DTO para actualizar un ThemeConfigUser.
|
|
10389
|
+
* El lookup en Mongo se hace por Identificacion (usuario + delegación).
|
|
10390
|
+
* No se requiere _id — MongoDB maneja su ObjectId internamente.
|
|
10391
|
+
*/
|
|
10382
10392
|
declare class UpdateThemeConfigUserDto {
|
|
10383
|
-
_id: string;
|
|
10384
10393
|
ID_Theme: number;
|
|
10385
10394
|
Identificacion: string;
|
|
10386
10395
|
Color: string;
|
package/dist/index.js
CHANGED
|
@@ -53826,7 +53826,6 @@ __decorateClass([
|
|
|
53826
53826
|
|
|
53827
53827
|
// src/v2/dtos/CreateThemeConfigUser.ts
|
|
53828
53828
|
var CreateThemeConfigUserDto = class {
|
|
53829
|
-
_id;
|
|
53830
53829
|
ID_Theme;
|
|
53831
53830
|
Identificacion;
|
|
53832
53831
|
Color;
|
|
@@ -53834,11 +53833,6 @@ var CreateThemeConfigUserDto = class {
|
|
|
53834
53833
|
Estado;
|
|
53835
53834
|
Favoritos;
|
|
53836
53835
|
};
|
|
53837
|
-
__decorateClass([
|
|
53838
|
-
(0, import_class_validator829.IsDefined)({ message: 'La propiedad "_id" es obligatoria.' }),
|
|
53839
|
-
(0, import_class_validator829.IsUUID)("4", { message: 'La propiedad "_id" debe ser un UUID v4 v\xE1lido.' }),
|
|
53840
|
-
(0, import_class_transformer853.Expose)()
|
|
53841
|
-
], CreateThemeConfigUserDto.prototype, "_id", 2);
|
|
53842
53836
|
__decorateClass([
|
|
53843
53837
|
(0, import_class_validator829.IsDefined)({ message: 'La propiedad "ID_Theme" es obligatoria.' }),
|
|
53844
53838
|
(0, import_class_validator829.IsNumber)({}, { message: 'La propiedad "ID_Theme" debe ser un n\xFAmero.' }),
|
|
@@ -53877,7 +53871,6 @@ __decorateClass([
|
|
|
53877
53871
|
var import_class_transformer854 = require("class-transformer");
|
|
53878
53872
|
var import_class_validator830 = require("class-validator");
|
|
53879
53873
|
var UpdateThemeConfigUserDto = class {
|
|
53880
|
-
_id;
|
|
53881
53874
|
ID_Theme;
|
|
53882
53875
|
Identificacion;
|
|
53883
53876
|
Color;
|
|
@@ -53885,11 +53878,6 @@ var UpdateThemeConfigUserDto = class {
|
|
|
53885
53878
|
Estado;
|
|
53886
53879
|
Favoritos;
|
|
53887
53880
|
};
|
|
53888
|
-
__decorateClass([
|
|
53889
|
-
(0, import_class_validator830.IsDefined)({ message: 'La propiedad "_id" es obligatoria.' }),
|
|
53890
|
-
(0, import_class_validator830.IsUUID)("4", { message: 'La propiedad "_id" debe ser un UUID v4 v\xE1lido.' }),
|
|
53891
|
-
(0, import_class_transformer854.Expose)()
|
|
53892
|
-
], UpdateThemeConfigUserDto.prototype, "_id", 2);
|
|
53893
53881
|
__decorateClass([
|
|
53894
53882
|
(0, import_class_validator830.IsDefined)({ message: 'La propiedad "ID_Theme" es obligatoria.' }),
|
|
53895
53883
|
(0, import_class_validator830.IsNumber)({}, { message: 'La propiedad "ID_Theme" debe ser un n\xFAmero.' }),
|
package/dist/index.mjs
CHANGED
|
@@ -53278,7 +53278,7 @@ __decorateClass([
|
|
|
53278
53278
|
|
|
53279
53279
|
// src/v2/dtos/CreateThemeConfigUser.ts
|
|
53280
53280
|
import { Expose as Expose825, Type as Type498 } from "class-transformer";
|
|
53281
|
-
import { IsArray as IsArray260, IsDefined as IsDefined307, IsNumber as IsNumber528, IsOptional as IsOptional71, IsString as IsString686,
|
|
53281
|
+
import { IsArray as IsArray260, IsDefined as IsDefined307, IsNumber as IsNumber528, IsOptional as IsOptional71, IsString as IsString686, ValidateNested as ValidateNested431 } from "class-validator";
|
|
53282
53282
|
|
|
53283
53283
|
// src/v2/shared-dto/FavoritoDTO.ts
|
|
53284
53284
|
import { Expose as Expose824 } from "class-transformer";
|
|
@@ -53314,7 +53314,6 @@ __decorateClass([
|
|
|
53314
53314
|
|
|
53315
53315
|
// src/v2/dtos/CreateThemeConfigUser.ts
|
|
53316
53316
|
var CreateThemeConfigUserDto = class {
|
|
53317
|
-
_id;
|
|
53318
53317
|
ID_Theme;
|
|
53319
53318
|
Identificacion;
|
|
53320
53319
|
Color;
|
|
@@ -53322,11 +53321,6 @@ var CreateThemeConfigUserDto = class {
|
|
|
53322
53321
|
Estado;
|
|
53323
53322
|
Favoritos;
|
|
53324
53323
|
};
|
|
53325
|
-
__decorateClass([
|
|
53326
|
-
IsDefined307({ message: 'La propiedad "_id" es obligatoria.' }),
|
|
53327
|
-
IsUUID39("4", { message: 'La propiedad "_id" debe ser un UUID v4 v\xE1lido.' }),
|
|
53328
|
-
Expose825()
|
|
53329
|
-
], CreateThemeConfigUserDto.prototype, "_id", 2);
|
|
53330
53324
|
__decorateClass([
|
|
53331
53325
|
IsDefined307({ message: 'La propiedad "ID_Theme" es obligatoria.' }),
|
|
53332
53326
|
IsNumber528({}, { message: 'La propiedad "ID_Theme" debe ser un n\xFAmero.' }),
|
|
@@ -53363,9 +53357,8 @@ __decorateClass([
|
|
|
53363
53357
|
|
|
53364
53358
|
// src/v2/dtos/UpdateThemeConfigUser.ts
|
|
53365
53359
|
import { Expose as Expose826, Type as Type499 } from "class-transformer";
|
|
53366
|
-
import { IsArray as IsArray261, IsDefined as IsDefined308, IsNumber as IsNumber529, IsOptional as IsOptional72, IsString as IsString687,
|
|
53360
|
+
import { IsArray as IsArray261, IsDefined as IsDefined308, IsNumber as IsNumber529, IsOptional as IsOptional72, IsString as IsString687, ValidateNested as ValidateNested432 } from "class-validator";
|
|
53367
53361
|
var UpdateThemeConfigUserDto = class {
|
|
53368
|
-
_id;
|
|
53369
53362
|
ID_Theme;
|
|
53370
53363
|
Identificacion;
|
|
53371
53364
|
Color;
|
|
@@ -53373,11 +53366,6 @@ var UpdateThemeConfigUserDto = class {
|
|
|
53373
53366
|
Estado;
|
|
53374
53367
|
Favoritos;
|
|
53375
53368
|
};
|
|
53376
|
-
__decorateClass([
|
|
53377
|
-
IsDefined308({ message: 'La propiedad "_id" es obligatoria.' }),
|
|
53378
|
-
IsUUID40("4", { message: 'La propiedad "_id" debe ser un UUID v4 v\xE1lido.' }),
|
|
53379
|
-
Expose826()
|
|
53380
|
-
], UpdateThemeConfigUserDto.prototype, "_id", 2);
|
|
53381
53369
|
__decorateClass([
|
|
53382
53370
|
IsDefined308({ message: 'La propiedad "ID_Theme" es obligatoria.' }),
|
|
53383
53371
|
IsNumber529({}, { message: 'La propiedad "ID_Theme" debe ser un n\xFAmero.' }),
|
|
@@ -53414,18 +53402,18 @@ __decorateClass([
|
|
|
53414
53402
|
|
|
53415
53403
|
// src/v2/entities/Delegation.ts
|
|
53416
53404
|
import { Expose as Expose828 } from "class-transformer";
|
|
53417
|
-
import { IsDefined as IsDefined310, IsNotEmpty as IsNotEmpty473, IsString as IsString688, IsUUID as
|
|
53405
|
+
import { IsDefined as IsDefined310, IsNotEmpty as IsNotEmpty473, IsString as IsString688, IsUUID as IsUUID40 } from "class-validator";
|
|
53418
53406
|
|
|
53419
53407
|
// src/v2/entities/Base.ts
|
|
53420
53408
|
import { Expose as Expose827 } from "class-transformer";
|
|
53421
|
-
import { IsBoolean as IsBoolean78, IsDefined as IsDefined309, IsUUID as
|
|
53409
|
+
import { IsBoolean as IsBoolean78, IsDefined as IsDefined309, IsUUID as IsUUID39 } from "class-validator";
|
|
53422
53410
|
var BaseEntity = class {
|
|
53423
53411
|
_id;
|
|
53424
53412
|
active;
|
|
53425
53413
|
};
|
|
53426
53414
|
__decorateClass([
|
|
53427
53415
|
IsDefined309({ message: 'La propiedad "_id" es obligatoria.' }),
|
|
53428
|
-
|
|
53416
|
+
IsUUID39("4", { message: 'La propiedad "_id" debe ser un UUID v4 v\xE1lido.' }),
|
|
53429
53417
|
Expose827()
|
|
53430
53418
|
], BaseEntity.prototype, "_id", 2);
|
|
53431
53419
|
__decorateClass([
|
|
@@ -53442,7 +53430,7 @@ var DelegationEntity = class extends BaseEntity {
|
|
|
53442
53430
|
};
|
|
53443
53431
|
__decorateClass([
|
|
53444
53432
|
IsDefined310({ message: "El campo pais es obligatorio" }),
|
|
53445
|
-
|
|
53433
|
+
IsUUID40("4", { message: "El campo pais debe ser un UUID v4 v\xE1lido." }),
|
|
53446
53434
|
Expose828()
|
|
53447
53435
|
], DelegationEntity.prototype, "countryId", 2);
|
|
53448
53436
|
__decorateClass([
|
|
@@ -53459,7 +53447,7 @@ __decorateClass([
|
|
|
53459
53447
|
], DelegationEntity.prototype, "name", 2);
|
|
53460
53448
|
|
|
53461
53449
|
// src/v2/entities/User.ts
|
|
53462
|
-
import { IsArray as IsArray262, IsBoolean as IsBoolean79, IsDefined as IsDefined311, IsEmail as IsEmail12, IsString as IsString689, IsUUID as
|
|
53450
|
+
import { IsArray as IsArray262, IsBoolean as IsBoolean79, IsDefined as IsDefined311, IsEmail as IsEmail12, IsString as IsString689, IsUUID as IsUUID41, ValidateIf as ValidateIf10, ValidateNested as ValidateNested433 } from "class-validator";
|
|
53463
53451
|
import { Expose as Expose829, Transform as Transform122, Type as Type500 } from "class-transformer";
|
|
53464
53452
|
var UserEntity = class extends BaseEntity {
|
|
53465
53453
|
email;
|
|
@@ -53520,7 +53508,7 @@ __decorateClass([
|
|
|
53520
53508
|
__decorateClass([
|
|
53521
53509
|
IsDefined311({ message: "debe proporcionar la delegaci\xF3n" }),
|
|
53522
53510
|
IsArray262({ message: "debe proporcionar la delegaci\xF3n" }),
|
|
53523
|
-
|
|
53511
|
+
IsUUID41("4", { each: true, message: "El campo delegaci\xF3n debe ser un UUID v4 v\xE1lido." }),
|
|
53524
53512
|
Expose829()
|
|
53525
53513
|
], UserEntity.prototype, "delegationIds", 2);
|
|
53526
53514
|
__decorateClass([
|
|
@@ -53531,7 +53519,7 @@ __decorateClass([
|
|
|
53531
53519
|
__decorateClass([
|
|
53532
53520
|
IsDefined311({ message: "El campo Perfil es obligatorio" }),
|
|
53533
53521
|
ValidateIf10((_, value) => value !== ""),
|
|
53534
|
-
|
|
53522
|
+
IsUUID41("4", { message: "El campo Perfil debe ser un UUID v4 v\xE1lido." }),
|
|
53535
53523
|
Expose829()
|
|
53536
53524
|
], UserEntity.prototype, "profileId", 2);
|
|
53537
53525
|
__decorateClass([
|
|
@@ -53594,7 +53582,7 @@ __decorateClass([
|
|
|
53594
53582
|
|
|
53595
53583
|
// src/v2/entities/Company.ts
|
|
53596
53584
|
import { Expose as Expose832 } from "class-transformer";
|
|
53597
|
-
import { IsArray as IsArray264, IsBoolean as IsBoolean80, IsDefined as IsDefined314, IsEmail as IsEmail13, IsEnum as IsEnum52, IsNotEmpty as IsNotEmpty475, IsString as IsString692, IsUUID as
|
|
53585
|
+
import { IsArray as IsArray264, IsBoolean as IsBoolean80, IsDefined as IsDefined314, IsEmail as IsEmail13, IsEnum as IsEnum52, IsNotEmpty as IsNotEmpty475, IsString as IsString692, IsUUID as IsUUID42 } from "class-validator";
|
|
53598
53586
|
var CompanyEntity = class extends BaseEntity {
|
|
53599
53587
|
companyType;
|
|
53600
53588
|
identification;
|
|
@@ -53662,7 +53650,7 @@ __decorateClass([
|
|
|
53662
53650
|
], CompanyEntity.prototype, "phones", 2);
|
|
53663
53651
|
__decorateClass([
|
|
53664
53652
|
IsDefined314({ message: "El campo pa\xEDs es requerido" }),
|
|
53665
|
-
|
|
53653
|
+
IsUUID42("4", { message: "El campo pa\xEDs debe ser un UUID" }),
|
|
53666
53654
|
Expose832()
|
|
53667
53655
|
], CompanyEntity.prototype, "countryId", 2);
|
|
53668
53656
|
|
package/package.json
CHANGED
package/.claude/CLAUDE.md
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
Frontend: C:\Users\USER\Desktop\Michael\5_cobra\1_workspace\1_projects\SIGO\Frontend\sigo-frontend-2
|
|
4
|
-
Backend: C:\Users\USER\Desktop\Michael\5_cobra\1_workspace\1_projects\SIGO\Backend\sigo-backend
|
|
5
|
-
Sigo-entities: C:\Users\USER\Desktop\Michael\5_cobra\1_workspace\1_projects\SIGO\npm\sigo-entities
|
|
6
|
-
|
|
7
|
-
## Descripción
|
|
8
|
-
Paquete NPM interno — contrato compartido de tipos, validación y transformación entre `sigo-frontend` y `sigo-backend`.
|
|
9
|
-
|
|
10
|
-
## Comandos
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
npm run build # Compila con tsup (CJS + ESM) y resuelve path aliases con tsc-alias
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Arquitectura
|
|
17
|
-
|
|
18
|
-
El paquete exporta todo desde `src/index.ts`, que re-exporta por dominio:
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
src/
|
|
22
|
-
administracion/ — asistencia, personal, etc.
|
|
23
|
-
configuracion/ — usuarios, perfiles
|
|
24
|
-
logistica/ — bodega, items, almacen
|
|
25
|
-
operativa/ — mantenimientos, procesos
|
|
26
|
-
programados/ — tareas programadas
|
|
27
|
-
shared/ — DTOs, enums, types y utils reutilizables
|
|
28
|
-
v2/ — versión 2 de entidades/DTOs
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Cada dominio tiene su propio `index.ts` que agrega exports de sus submódulos. El entry point es `dist/index.js` (CJS) / `dist/index.mjs` (ESM) con tipos en `dist/index.d.ts`.
|
|
32
|
-
|
|
33
|
-
## Patrón de entidades y DTOs
|
|
34
|
-
|
|
35
|
-
**ENTITY**: Representa un documento completo de una colección MongoDB.
|
|
36
|
-
**DTO**: Representa una sub-estructura reutilizable o forma de datos anidados.
|
|
37
|
-
|
|
38
|
-
Ejemplo de propiedad con el patrón completo:
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
@Expose()
|
|
42
|
-
@IsDefined({ message: "El campo X es obligatorio" })
|
|
43
|
-
@IsString()
|
|
44
|
-
@Length(0, 75)
|
|
45
|
-
@Transform(({ value }) => value?.toUpperCase().trim())
|
|
46
|
-
Codigo: string = ''
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Patrones clave:
|
|
50
|
-
|
|
51
|
-
- Todas las propiedades se inicializan con valores por defecto (strings vacíos, `0`, `new Class()`)
|
|
52
|
-
- Objetos anidados usan `@Type(() => DtoClass)` + `@ValidateNested()`
|
|
53
|
-
- Arrays usan `@IsArray()` + `@ValidateNested({ each: true })`
|
|
54
|
-
- Texto normalmente se transforma con `.toUpperCase().trim()`
|
|
55
|
-
|
|
56
|
-
## Path aliases (tsconfig)
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
"@shared-dto/*" → "src/shared/dto/*"
|
|
60
|
-
"@shared-types/*" → "src/shared/types/*"
|
|
61
|
-
"@shared-enums/*" → "src/shared/enums/*"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Convenciones importantes
|
|
65
|
-
|
|
66
|
-
- Cada colección MongoDB tiene exactamente una `ENTITY`
|
|
67
|
-
- Naming: `[Nombre]ENTITY` y `[Nombre]DTO`
|
|
68
|
-
- Este paquete es la única fuente de verdad para los tipos — no duplicar en front ni back
|
|
69
|
-
- Cualquier cambio en una entidad impacta ambos proyectos — cuidado con breaking changes
|
|
70
|
-
- `reflect-metadata` se importa en el `src/index.ts` raíz (requerido por class-validator/transformer)
|
package/.claude/settings.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"allow": [
|
|
3
|
-
"Read(//c/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/Frontend/sigo-frontend-2/**)",
|
|
4
|
-
"Read(//c/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/Backend/sigo-backend/**)",
|
|
5
|
-
"Read(//c/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/npm/sigo-entities/**)",
|
|
6
|
-
"Read(//c/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/npm/sigo-package/**)",
|
|
7
|
-
"Read(.env)",
|
|
8
|
-
"Read(.env.*)"
|
|
9
|
-
],
|
|
10
|
-
"env": {
|
|
11
|
-
"SIGO_FRONTEND": "C:/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/Frontend/sigo-frontend-2",
|
|
12
|
-
"SIGO_BACKEND": "C:/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/Backend/sigo-backend",
|
|
13
|
-
"SIGO_ENTITIES": "C:/Users/USER/Desktop/Michael/5_cobra/1_workspace/1_projects/SIGO/npm/sigo-entities"
|
|
14
|
-
},
|
|
15
|
-
"permissions": {
|
|
16
|
-
"deny": [
|
|
17
|
-
"Read(node_modules/**)",
|
|
18
|
-
"Read(dist/**)"
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mdl-administracion
|
|
3
|
-
description: >
|
|
4
|
-
Dominio administracion/ — base de datos MDL_ADMINISTRACION. Usar cuando se trabaje con
|
|
5
|
-
órdenes de trabajo (OT), asistencia, mano de obra, precios, baremos, documentación PEX,
|
|
6
|
-
zonas de trabajo, o cualquier entidad/DTO dentro de src/administracion/.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Skill: MDL_ADMINISTRACION
|
|
10
|
-
|
|
11
|
-
Carpeta: `src/administracion/`
|
|
12
|
-
Base de datos MongoDB: **MDL_ADMINISTRACION**
|
|
13
|
-
|
|
14
|
-
También contiene parte de **MDL_CATALOGO** — datos de referencia como precios, tipos y unidades.
|
|
15
|
-
|
|
16
|
-
## Sub-dominios principales
|
|
17
|
-
|
|
18
|
-
| Carpeta | Contenido |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `ot/` | Órdenes de Trabajo — vigencia, estado |
|
|
21
|
-
| `otglobal/` | OT globales |
|
|
22
|
-
| `asistencia/` | Registro de asistencia y resumen |
|
|
23
|
-
| `mano-obra-unidad-obra/` | Relación mano de obra ↔ unidad de obra |
|
|
24
|
-
| `mano_obra_mtto/` | Mano de obra en mantenimiento |
|
|
25
|
-
| `precio-mano-obra/` | Precios de MO (global, empresa, precio actual) — **MDL_CATALOGO** |
|
|
26
|
-
| `precio material/` | Precios de materiales — **MDL_CATALOGO** |
|
|
27
|
-
| `precio especialidad/` | Precios por especialidad y agencia — **MDL_CATALOGO** |
|
|
28
|
-
| `unidad_obra/` | Catálogo de unidades de obra — **MDL_CATALOGO** |
|
|
29
|
-
| `unidad obra material/` | Materiales por unidad de obra — **MDL_CATALOGO** |
|
|
30
|
-
| `zona trabajo/` | Zonas de trabajo y contratos OT |
|
|
31
|
-
| `documentacion-pex/` | Documentación de procesos PEX |
|
|
32
|
-
| `documentacion-baremo-pex/` | Baremos para documentación PEX |
|
|
33
|
-
| `tipo movil/` | Tipos de vehículo/móvil — **MDL_CATALOGO** |
|
|
34
|
-
| `tipo_clave/` | Tipos de clave — **MDL_CATALOGO** |
|
|
35
|
-
| `rm_zona_actividad/` | Relación RM zona-actividad |
|
|
36
|
-
| `ItemExtra/` | Ítems extra (SKU, proveedor) |
|
|
37
|
-
| `EstadoInterno/` | Estados internos de OT |
|
|
38
|
-
| `permisos-app/` | Permisos de la app |
|
|
39
|
-
| `mail structure/` | Estructura de destinatarios de mail |
|
|
40
|
-
| `key integracion/` | Claves de integración externa |
|
|
41
|
-
| `PrecioAgencia_mam_onnet/` | Precios de agencia MAM/Onnet |
|
|
42
|
-
| `chile 9512 paquetizado mano obra/` | Chile: MO paquetizada contrato 9512 |
|
|
43
|
-
| `chile 9512 paquetizado material/` | Chile: material paquetizado contrato 9512 |
|
|
44
|
-
|
|
45
|
-
## Naming
|
|
46
|
-
|
|
47
|
-
- Entidades: `[Nombre]ENTITY` — representan una colección MongoDB completa
|
|
48
|
-
- DTOs: `[Nombre]DTO` — sub-estructuras anidadas o reutilizables
|
|
49
|
-
- Ejemplo: `OtENTITY`, `VigenciaOtDTO`, `PrecioManoObraENTITY`, `PrecioEmpresaDTO`
|
|
50
|
-
|
|
51
|
-
## Ubicación de archivos
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
src/administracion/
|
|
55
|
-
└── [nombre-modulo]/
|
|
56
|
-
└── shared/
|
|
57
|
-
├── [nombre].entity.ts ← ENTITY principal
|
|
58
|
-
└── dto/
|
|
59
|
-
└── [nombre]-dto.ts ← DTOs anidados
|
|
60
|
-
```
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mdl-configuracion
|
|
3
|
-
description: >
|
|
4
|
-
Dominio configuracion/ — base de datos MDL_CONFIGURACION. Usar cuando se trabaje con
|
|
5
|
-
usuarios, perfiles, empresas, sistema, notificaciones, cargos, contratos OT,
|
|
6
|
-
o cualquier entidad/DTO dentro de src/configuracion/.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Skill: MDL_CONFIGURACION
|
|
10
|
-
|
|
11
|
-
Carpeta: `src/configuracion/`
|
|
12
|
-
Base de datos MongoDB: **MDL_CONFIGURACION**
|
|
13
|
-
|
|
14
|
-
## Sub-dominios principales
|
|
15
|
-
|
|
16
|
-
| Carpeta | Contenido |
|
|
17
|
-
|---|---|
|
|
18
|
-
| `usuarios/` | Usuarios del sistema |
|
|
19
|
-
| `usuarios autoinventario/` | Usuarios del módulo autoinventario |
|
|
20
|
-
| `perfiles/` | Perfiles de acceso y sistemas asociados |
|
|
21
|
-
| `personal/` | Datos del personal |
|
|
22
|
-
| `cargo personal/` | Cargos/roles del personal |
|
|
23
|
-
| `empresa/` | Empresas (datos generales, GIA, grupo empresa, representante legal, tipo) |
|
|
24
|
-
| `sistema/` | Configuración general del sistema |
|
|
25
|
-
| `opcion sistema/` | Opciones del sistema |
|
|
26
|
-
| `tipo opcion sistema/` | Tipos de opciones del sistema |
|
|
27
|
-
| `tipo especialidad mo/` | Tipos de especialidad de mano de obra |
|
|
28
|
-
| `tipo clave/` | Tipos de clave de configuración |
|
|
29
|
-
| `contrato ot/` | Contratos de órdenes de trabajo |
|
|
30
|
-
| `notificaciones/` | Notificaciones (data adicional) |
|
|
31
|
-
| `scraping credential/` | Credenciales para scraping |
|
|
32
|
-
| `theme config country/` | Configuración de tema por país |
|
|
33
|
-
|
|
34
|
-
## Naming
|
|
35
|
-
|
|
36
|
-
- Entidades: `[Nombre]ENTITY`
|
|
37
|
-
- DTOs: `[Nombre]DTO`
|
|
38
|
-
- Ejemplo: `UsuarioENTITY`, `EmpresaENTITY`, `DatosGeneralesDTO`, `SistemaDTO`, `PerfilENTITY`
|
|
39
|
-
|
|
40
|
-
## Ubicación de archivos
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
src/configuracion/
|
|
44
|
-
└── [nombre-modulo]/
|
|
45
|
-
└── shared/
|
|
46
|
-
├── [nombre].entity.ts
|
|
47
|
-
└── dto/
|
|
48
|
-
└── [nombre]-dto.ts
|
|
49
|
-
```
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ope-im
|
|
3
|
-
description: >
|
|
4
|
-
Dominio operativa/ — base de datos OPE_IM. Usar cuando se trabaje con
|
|
5
|
-
mantenimientos, procesos de integración externa (TOA, WAOO, WIN, Fibramas, Onnet,
|
|
6
|
-
Movistar, Somacyl, Tuves, TDC), órdenes de liquidación, order stock,
|
|
7
|
-
o cualquier entidad/DTO dentro de src/operativa/.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Skill: OPE_IM
|
|
11
|
-
|
|
12
|
-
Carpeta: `src/operativa/`
|
|
13
|
-
Base de datos MongoDB: **OPE_IM**
|
|
14
|
-
|
|
15
|
-
Contiene integraciones con sistemas externos de operadores de telecomunicaciones y procesos de mantenimiento.
|
|
16
|
-
|
|
17
|
-
## Sub-dominios principales
|
|
18
|
-
|
|
19
|
-
### `mantenimientos/`
|
|
20
|
-
Entidades de mantenimiento operativo.
|
|
21
|
-
|
|
22
|
-
### `procesos/`
|
|
23
|
-
Integraciones con sistemas externos por operador:
|
|
24
|
-
|
|
25
|
-
| Carpeta | Operador / Sistema |
|
|
26
|
-
|---|---|
|
|
27
|
-
| `TOA orden liquidacion/` | TOA — órdenes de liquidación |
|
|
28
|
-
| `TOA orden liquidacion_db/` | TOA — órdenes de liquidación (versión BD) |
|
|
29
|
-
| `TOA Claro order stock/` | TOA Claro — order stock |
|
|
30
|
-
| `TOA order stock/` | TOA — order stock genérico |
|
|
31
|
-
| `toa_claro/` | TOA Claro (scraper + shared) |
|
|
32
|
-
| `toa_movistar/` | TOA Movistar |
|
|
33
|
-
| `toa_movistar_db/` | TOA Movistar (versión BD) |
|
|
34
|
-
| `baremos_toa/` | Baremos TOA (Chile + shared) |
|
|
35
|
-
| `liquidadas_toa/` | Órdenes TOA liquidadas |
|
|
36
|
-
| `valorizadas_toa/` | Órdenes TOA valorizadas |
|
|
37
|
-
| `onnet_fibra/` | Onnet Fibra (DTOs + utils) |
|
|
38
|
-
| `fibramas_order/` | Fibramas — órdenes |
|
|
39
|
-
| `fibramas_order_db/` | Fibramas — órdenes (versión BD) |
|
|
40
|
-
| `win_order/` | WIN — órdenes |
|
|
41
|
-
| `win_order_db/` | WIN — órdenes (versión BD) |
|
|
42
|
-
| `waoo_order_stock/` | WAOO — order stock |
|
|
43
|
-
| `cliente_waoo/` | WAOO — clientes |
|
|
44
|
-
| `somacyl_order/` | Somacyl — órdenes |
|
|
45
|
-
| `tuves/` | Tuves |
|
|
46
|
-
| `tuves_order_stock/` | Tuves — order stock |
|
|
47
|
-
| `tdc/` | TDC (Chile — DTOs + interfaces) |
|
|
48
|
-
| `stb_dth_toaperu/` | STB DTH TOA Perú |
|
|
49
|
-
| `order stock/` | Order stock genérico |
|
|
50
|
-
| `request number TTL/` | Request number TTL |
|
|
51
|
-
|
|
52
|
-
## Naming
|
|
53
|
-
|
|
54
|
-
- Entidades: `[Nombre]ENTITY`
|
|
55
|
-
- DTOs: `[Nombre]DTO`
|
|
56
|
-
- Ejemplo: `ToaOrdenLiquidacionENTITY`, `BaremoToaENTITY`, `OnnetFibraENTITY`
|
|
57
|
-
|
|
58
|
-
## Ubicación de archivos
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
src/operativa/
|
|
62
|
-
├── mantenimientos/
|
|
63
|
-
│ └── shared/
|
|
64
|
-
│ └── [nombre].entity.ts
|
|
65
|
-
└── procesos/
|
|
66
|
-
└── [nombre-operador]/
|
|
67
|
-
└── shared/
|
|
68
|
-
├── [nombre].entity.ts
|
|
69
|
-
└── dto/
|
|
70
|
-
└── [nombre]-dto.ts
|
|
71
|
-
```
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ope-logistica
|
|
3
|
-
description: >
|
|
4
|
-
Dominio logistica/ — base de datos OPE_LOGISTICA. Usar cuando se trabaje con
|
|
5
|
-
almacenes, bodega, stock, inventario, movimientos de almacén, consumo de material,
|
|
6
|
-
devoluciones, ítems, kits, o cualquier entidad/DTO dentro de src/logistica/.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Skill: OPE_LOGISTICA
|
|
10
|
-
|
|
11
|
-
Carpeta: `src/logistica/`
|
|
12
|
-
Base de datos MongoDB: **OPE_LOGISTICA**
|
|
13
|
-
|
|
14
|
-
También contiene parte de **MDL_CATALOGO** — catálogo de ítems, tipos de almacén, unidades de medida.
|
|
15
|
-
|
|
16
|
-
## Sub-dominios principales
|
|
17
|
-
|
|
18
|
-
| Carpeta | Contenido |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `almacen/` | Almacenes |
|
|
21
|
-
| `almacen extra/` | Almacenes extra |
|
|
22
|
-
| `bodega/` | Bodegas |
|
|
23
|
-
| `stock almacen/` | Stock en almacén |
|
|
24
|
-
| `stock almacen equipos/` | Stock de equipos en almacén |
|
|
25
|
-
| `stock personal/` | Stock asignado a personal |
|
|
26
|
-
| `stock personal equipos/` | Stock de equipos del personal |
|
|
27
|
-
| `movimiento almacen/` | Movimientos de almacén |
|
|
28
|
-
| `ingreso almacen/` | Ingresos a almacén |
|
|
29
|
-
| `salida almacen/` | Salidas de almacén |
|
|
30
|
-
| `devolucion almacen/` | Devoluciones de almacén |
|
|
31
|
-
| `consumo material/` | Consumo de material (incluye variante Alemania) |
|
|
32
|
-
| `consumos P117/` | Consumos protocolo P117 |
|
|
33
|
-
| `kitconsumo/` | Kits de consumo |
|
|
34
|
-
| `autoinventario/` | Autoinventario |
|
|
35
|
-
| `transaccion folios/` | Transacciones con folios |
|
|
36
|
-
| `atencion ordenes liquidadas/` | Atención de órdenes liquidadas |
|
|
37
|
-
| `items/` | Catálogo de ítems (incluye variante Alemania) — **MDL_CATALOGO** |
|
|
38
|
-
| `gran familia item/` | Gran familia de ítems — **MDL_CATALOGO** |
|
|
39
|
-
| `tipo almacen/` | Tipos de almacén — **MDL_CATALOGO** |
|
|
40
|
-
| `tipo movimiento almacen/` | Tipos de movimiento de almacén — **MDL_CATALOGO** |
|
|
41
|
-
| `tipo stock/` | Tipos de stock — **MDL_CATALOGO** |
|
|
42
|
-
| `unidad medida/` | Unidades de medida — **MDL_CATALOGO** |
|
|
43
|
-
| `procesos/navisionpreorden/` | Pre-órdenes Navision (DTOs, enums, requestDtos) |
|
|
44
|
-
|
|
45
|
-
## Naming
|
|
46
|
-
|
|
47
|
-
- Entidades: `[Nombre]ENTITY`
|
|
48
|
-
- DTOs: `[Nombre]DTO`
|
|
49
|
-
- Ejemplo: `AlmacenENTITY`, `AlmacenDTO`, `StockAlmacenENTITY`, `MovimientoAlmacenENTITY`
|
|
50
|
-
|
|
51
|
-
## Ubicación de archivos
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
src/logistica/
|
|
55
|
-
└── [nombre-modulo]/
|
|
56
|
-
└── shared/
|
|
57
|
-
├── [nombre].entity.ts
|
|
58
|
-
└── dto/
|
|
59
|
-
└── [nombre]-dto.ts
|
|
60
|
-
```
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ope-pex
|
|
3
|
-
description: >
|
|
4
|
-
Dominio programados/ — base de datos OPE_PEX. Usar cuando se trabaje con
|
|
5
|
-
procesos programados de ejecución: obra, trabajo, cubicación, macroobra,
|
|
6
|
-
reservas (MO y material), reportes de producción, liberación de pagos,
|
|
7
|
-
mantenimientos de catálogos (agencia, cuadrilla, periodo, presupuesto),
|
|
8
|
-
o cualquier entidad/DTO dentro de src/programados/.
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Skill: OPE_PEX
|
|
12
|
-
|
|
13
|
-
Carpeta: `src/programados/`
|
|
14
|
-
Base de datos MongoDB: **OPE_PEX**
|
|
15
|
-
|
|
16
|
-
Procesos programados de ejecución — el dominio más grande del paquete.
|
|
17
|
-
|
|
18
|
-
## Sub-dominios principales
|
|
19
|
-
|
|
20
|
-
### `Reportes/`
|
|
21
|
-
|
|
22
|
-
| Carpeta | Contenido |
|
|
23
|
-
|---|---|
|
|
24
|
-
| `LiberacionDePagos/` | Reporte de liberación de pagos (DTOs + requestDtos) |
|
|
25
|
-
| `ReporteProduccion/` | Reporte de producción (Alemania, Chile, Colombia — baremos y resumen) |
|
|
26
|
-
| `RptProduccionCurso_Baremos_Fases/` | Reporte producción en curso con baremos y fases |
|
|
27
|
-
|
|
28
|
-
### `mantenimientos/`
|
|
29
|
-
Catálogos y configuraciones base de OPE_PEX:
|
|
30
|
-
|
|
31
|
-
| Carpeta | Contenido |
|
|
32
|
-
|---|---|
|
|
33
|
-
| `agencia/` | Agencias |
|
|
34
|
-
| `area_gom/` | Áreas GOM |
|
|
35
|
-
| `centro costos/` | Centros de costo |
|
|
36
|
-
| `contrato-pagos/` | Contratos de pago (Alemania) |
|
|
37
|
-
| `cuadrilla/` | Cuadrillas de trabajo |
|
|
38
|
-
| `mano obra global/` | Mano de obra global |
|
|
39
|
-
| `mano-obra-baremo/` | Mano de obra × baremo |
|
|
40
|
-
| `periodo/` | Períodos |
|
|
41
|
-
| `presupuesto-ot/` | Presupuesto de OT |
|
|
42
|
-
| `rm actividad/` | RM actividad |
|
|
43
|
-
| `rm comuna/` | RM comuna |
|
|
44
|
-
| `rm mano obra/` | RM mano de obra |
|
|
45
|
-
| `rm paquetizado/` | RM paquetizado |
|
|
46
|
-
| `rm-material/` | RM material |
|
|
47
|
-
| `rm-zonas-actividad/` | RM zonas de actividad |
|
|
48
|
-
| `tipo actividad mo/` | Tipos de actividad MO |
|
|
49
|
-
| `tipo obra/` | Tipos de obra |
|
|
50
|
-
|
|
51
|
-
### `procesos/`
|
|
52
|
-
Procesos de ejecución programada:
|
|
53
|
-
|
|
54
|
-
| Carpeta | Contenido |
|
|
55
|
-
|---|---|
|
|
56
|
-
| `obra/` | Obra (Alemania AL02/AL04, Chile 9512, Colombia 9612, Perú 9112, shared) |
|
|
57
|
-
| `trabajo/` | Trabajo (Alemania + shared) |
|
|
58
|
-
| `macroobra/` | Macro-obra (Chile, Perú, shared) |
|
|
59
|
-
| `trabajoMacroObra/` | Trabajo en macro-obra (Alemania + shared) |
|
|
60
|
-
| `cubicacion/` | Cubicación (Alemania, Chile, Colombia, Perú, shared) |
|
|
61
|
-
| `reservaManoObra/` | Reserva de mano de obra (Alemania + shared) |
|
|
62
|
-
| `reservaManoObraRegularizacion/` | Regularización de reserva MO |
|
|
63
|
-
| `reservaMaterial/` | Reserva de material |
|
|
64
|
-
| `precioContratistaIssue/` | Precio contratista — issues (Alemania AL02 + shared) |
|
|
65
|
-
| `precioContratistaMO/` | Precio contratista MO (Alemania AL02/AL04 + shared) |
|
|
66
|
-
| `precioContratistaMaterial/` | Precio contratista material |
|
|
67
|
-
| `gom/` | GOM (Colombia + shared) |
|
|
68
|
-
| `Issue/` | Issues generales |
|
|
69
|
-
| `addressList_AL04/` | Lista de direcciones AL04 (Alemania) |
|
|
70
|
-
| `data-migrations/` | Migraciones de datos |
|
|
71
|
-
| `model mo sql/` | Modelo MO SQL (Perú) |
|
|
72
|
-
| `model obra sql/` | Modelo obra SQL (Perú) |
|
|
73
|
-
|
|
74
|
-
## Naming
|
|
75
|
-
|
|
76
|
-
- Entidades: `[Nombre]ENTITY`
|
|
77
|
-
- DTOs: `[Nombre]DTO`
|
|
78
|
-
- Ejemplo: `ObraENTITY`, `TrabajoENTITY`, `CubicacionENTITY`, `ReservaManoObraENTITY`
|
|
79
|
-
|
|
80
|
-
## Patrón por país
|
|
81
|
-
|
|
82
|
-
Muchos módulos tienen variantes por país dentro del mismo proceso:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
procesos/obra/
|
|
86
|
-
├── alemania/AL02/ ← contrato alemán AL02
|
|
87
|
-
├── alemania/AL04/ ← contrato alemán AL04
|
|
88
|
-
├── chile/9512/ ← contrato chileno 9512
|
|
89
|
-
├── colombia/9612/ ← contrato colombiano 9612
|
|
90
|
-
├── peru/9112/ ← contrato peruano 9112
|
|
91
|
-
└── shared/ ← estructura base compartida
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Ubicación de archivos
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
src/programados/
|
|
98
|
-
├── Reportes/[nombre]/shared/(dto|request_dto)/
|
|
99
|
-
├── mantenimientos/[nombre]/shared/(entity|dto)/
|
|
100
|
-
└── procesos/[nombre]/
|
|
101
|
-
├── shared/
|
|
102
|
-
│ ├── [nombre].entity.ts
|
|
103
|
-
│ ├── dto/
|
|
104
|
-
│ └── requestDto/
|
|
105
|
-
└── [pais]/dto/
|
|
106
|
-
```
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: shared-dtos
|
|
3
|
-
description: >
|
|
4
|
-
Dominio shared/ — DTOs, enums, types y utils reutilizables en todos los dominios.
|
|
5
|
-
Usar cuando se necesite un DTO transversal como CodigoNombre, UsuarioDTO, o cualquier
|
|
6
|
-
estructura que se repite en múltiples colecciones/módulos. También contiene enums
|
|
7
|
-
globales, tipos TypeScript y utilidades de transformación.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Skill: Shared DTOs
|
|
11
|
-
|
|
12
|
-
Carpeta: `src/shared/`
|
|
13
|
-
**No tiene base de datos propia** — es código reutilizado por todos los dominios.
|
|
14
|
-
|
|
15
|
-
## Sub-carpetas
|
|
16
|
-
|
|
17
|
-
### `dto/`
|
|
18
|
-
DTOs transversales usados en múltiples entidades y dominios.
|
|
19
|
-
|
|
20
|
-
Ejemplos clave:
|
|
21
|
-
|
|
22
|
-
| DTO | Forma | Uso |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| `CodigoNombre` | `{ Codigo: string, Nombre: string }` | Referencia genérica a catálogos |
|
|
25
|
-
| `UsuarioDTO` | datos del usuario | Auditoría, asignaciones |
|
|
26
|
-
| `AlmacenDTO` | datos de almacén | Referencia a almacenes en otros módulos |
|
|
27
|
-
| `AutoinventarioDTO` | — | Inventario en múltiples dominios |
|
|
28
|
-
| `ZonasDTO` | — | Zonas de trabajo transversales |
|
|
29
|
-
|
|
30
|
-
> Si una estructura `{ Codigo, Nombre }` aparece en varios módulos, usar `CodigoNombre` de shared en vez de redefinirla.
|
|
31
|
-
|
|
32
|
-
### `enums/`
|
|
33
|
-
Enums globales del sistema:
|
|
34
|
-
|
|
35
|
-
| Archivo | Contenido |
|
|
36
|
-
|---|---|
|
|
37
|
-
| `RequeridoEnum.ts` | Enum de campos requeridos |
|
|
38
|
-
| `StateInternalOrder.ts` | Estados de órdenes internas |
|
|
39
|
-
| `StateInternalOrderTOA.ts` | Estados de órdenes TOA |
|
|
40
|
-
|
|
41
|
-
### `types/`
|
|
42
|
-
Tipos TypeScript globales:
|
|
43
|
-
|
|
44
|
-
| Archivo | Contenido |
|
|
45
|
-
|---|---|
|
|
46
|
-
| `sistema-recurso.ts` | Tipo de recurso del sistema |
|
|
47
|
-
| `state-inventory.ts` | Tipo de estado de inventario |
|
|
48
|
-
|
|
49
|
-
### `utils/`
|
|
50
|
-
Utilidades de transformación usadas en decoradores `@Transform`:
|
|
51
|
-
|
|
52
|
-
| Utilidad | Función |
|
|
53
|
-
|---|---|
|
|
54
|
-
| `trimAndUpperCaseString` | `.trim().toUpperCase()` — la más usada |
|
|
55
|
-
| `smartDateTransformer` | Transforma strings a Date de forma segura |
|
|
56
|
-
| `convertStringsToDates` | Convierte strings ISO a Date en objetos |
|
|
57
|
-
| `convertTypeNumber` | Fuerza conversión a número |
|
|
58
|
-
| `forceString` | Fuerza conversión a string |
|
|
59
|
-
| `transformToDateIfEmpty` | Date con fallback si vacío |
|
|
60
|
-
| `enumToArray` | Convierte enum a array |
|
|
61
|
-
| `entity_generator` | Genera instancias de entidad con defaults |
|
|
62
|
-
| `entity_generator_under_hyphen` | Variante con naming hyphen |
|
|
63
|
-
| `validarYFormatearDatos` | Valida y formatea datos |
|
|
64
|
-
| `validateArrayBody` | Valida arrays en body |
|
|
65
|
-
|
|
66
|
-
## Path aliases
|
|
67
|
-
|
|
68
|
-
```ts
|
|
69
|
-
import { ... } from '@shared-dto/nombre-dto' // src/shared/dto/
|
|
70
|
-
import { ... } from '@shared-types/nombre-type' // src/shared/types/
|
|
71
|
-
import { ... } from '@shared-enums/nombre-enum' // src/shared/enums/
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Regla
|
|
75
|
-
|
|
76
|
-
Antes de crear un DTO nuevo, revisar si ya existe en `shared/dto/`. Si la misma forma de datos aparece en ≥2 módulos distintos, pertenece a `shared/`.
|