sigo-entities 1.2.393 → 1.2.394
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/.claude/CLAUDE.md +70 -0
- package/.claude/settings.json +21 -0
- package/.claude/skills/mdl-administracion/SKILL.md +60 -0
- package/.claude/skills/mdl-configuracion/SKILL.md +49 -0
- package/.claude/skills/ope-im/SKILL.md +71 -0
- package/.claude/skills/ope-logistica/SKILL.md +60 -0
- package/.claude/skills/ope-pex/SKILL.md +106 -0
- package/.claude/skills/shared-dtos/SKILL.md +76 -0
- package/dist/index.js +11 -15
- package/dist/index.mjs +12 -16
- package/package.json +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
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)
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
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/`.
|
package/dist/index.js
CHANGED
|
@@ -38070,27 +38070,25 @@ var ContratistaDTO = class {
|
|
|
38070
38070
|
};
|
|
38071
38071
|
__decorateClass([
|
|
38072
38072
|
(0, import_class_validator658.IsString)({ message: "debe ser un texto" }),
|
|
38073
|
-
(0, import_class_validator658.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38074
38073
|
(0, import_class_transformer681.Expose)()
|
|
38075
38074
|
], ContratistaDTO.prototype, "CO", 2);
|
|
38076
38075
|
__decorateClass([
|
|
38077
38076
|
(0, import_class_validator658.IsString)({ message: "debe ser un texto" }),
|
|
38078
|
-
(0, import_class_validator658.Length)(
|
|
38077
|
+
(0, import_class_validator658.Length)(0, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38079
38078
|
(0, import_class_transformer681.Expose)()
|
|
38080
38079
|
], ContratistaDTO.prototype, "Contratista", 2);
|
|
38081
38080
|
__decorateClass([
|
|
38082
38081
|
(0, import_class_validator658.IsString)({ message: "debe ser un texto" }),
|
|
38083
|
-
(0, import_class_validator658.Length)(1, 122, { message: "debe tener entre 1 y 122 caracteres" }),
|
|
38084
38082
|
(0, import_class_transformer681.Expose)()
|
|
38085
38083
|
], ContratistaDTO.prototype, "Contrato", 2);
|
|
38086
38084
|
__decorateClass([
|
|
38087
38085
|
(0, import_class_validator658.IsString)({ message: "debe ser un texto" }),
|
|
38088
|
-
(0, import_class_validator658.Length)(1,
|
|
38086
|
+
(0, import_class_validator658.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38089
38087
|
(0, import_class_transformer681.Expose)()
|
|
38090
38088
|
], ContratistaDTO.prototype, "Codigo_Externo", 2);
|
|
38091
38089
|
__decorateClass([
|
|
38092
38090
|
(0, import_class_validator658.IsString)({ message: "debe ser un texto" }),
|
|
38093
|
-
(0, import_class_validator658.Length)(1,
|
|
38091
|
+
(0, import_class_validator658.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38094
38092
|
(0, import_class_transformer681.Expose)()
|
|
38095
38093
|
], ContratistaDTO.prototype, "Codigo_TdC_Externo", 2);
|
|
38096
38094
|
|
|
@@ -38471,12 +38469,10 @@ var OperacionDTO = class {
|
|
|
38471
38469
|
};
|
|
38472
38470
|
__decorateClass([
|
|
38473
38471
|
(0, import_class_validator669.IsString)({ message: "debe ser un texto" }),
|
|
38474
|
-
(0, import_class_validator669.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38475
38472
|
(0, import_class_transformer692.Expose)()
|
|
38476
38473
|
], OperacionDTO.prototype, "Codigo", 2);
|
|
38477
38474
|
__decorateClass([
|
|
38478
38475
|
(0, import_class_validator669.IsString)({ message: "debe ser un texto" }),
|
|
38479
|
-
(0, import_class_validator669.Length)(1, 36, { message: "debe tener entre 1 y 36 caracteres" }),
|
|
38480
38476
|
(0, import_class_transformer692.Expose)()
|
|
38481
38477
|
], OperacionDTO.prototype, "Tipo", 2);
|
|
38482
38478
|
|
|
@@ -38513,42 +38509,42 @@ var UbicacionTdCDTO = class {
|
|
|
38513
38509
|
};
|
|
38514
38510
|
__decorateClass([
|
|
38515
38511
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38516
|
-
(0, import_class_validator671.Length)(1,
|
|
38512
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38517
38513
|
(0, import_class_transformer694.Expose)()
|
|
38518
38514
|
], UbicacionTdCDTO.prototype, "Municipio", 2);
|
|
38519
38515
|
__decorateClass([
|
|
38520
38516
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38521
|
-
(0, import_class_validator671.Length)(0,
|
|
38517
|
+
(0, import_class_validator671.Length)(0, 200, { message: "debe tener entre 0 y 200 caracteres" }),
|
|
38522
38518
|
(0, import_class_transformer694.Expose)()
|
|
38523
38519
|
], UbicacionTdCDTO.prototype, "Tipo_Agrupacion", 2);
|
|
38524
38520
|
__decorateClass([
|
|
38525
38521
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38526
|
-
(0, import_class_validator671.Length)(1,
|
|
38522
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38527
38523
|
(0, import_class_transformer694.Expose)()
|
|
38528
38524
|
], UbicacionTdCDTO.prototype, "Direccion", 2);
|
|
38529
38525
|
__decorateClass([
|
|
38530
38526
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38531
|
-
(0, import_class_validator671.Length)(1,
|
|
38527
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38532
38528
|
(0, import_class_transformer694.Expose)()
|
|
38533
38529
|
], UbicacionTdCDTO.prototype, "Provincia", 2);
|
|
38534
38530
|
__decorateClass([
|
|
38535
38531
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38536
|
-
(0, import_class_validator671.Length)(1,
|
|
38532
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38537
38533
|
(0, import_class_transformer694.Expose)()
|
|
38538
38534
|
], UbicacionTdCDTO.prototype, "Ruta_Lectura", 2);
|
|
38539
38535
|
__decorateClass([
|
|
38540
38536
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38541
|
-
(0, import_class_validator671.Length)(1,
|
|
38537
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38542
38538
|
(0, import_class_transformer694.Expose)()
|
|
38543
38539
|
], UbicacionTdCDTO.prototype, "Zona", 2);
|
|
38544
38540
|
__decorateClass([
|
|
38545
38541
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38546
|
-
(0, import_class_validator671.Length)(1,
|
|
38542
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38547
38543
|
(0, import_class_transformer694.Expose)()
|
|
38548
38544
|
], UbicacionTdCDTO.prototype, "Longitud", 2);
|
|
38549
38545
|
__decorateClass([
|
|
38550
38546
|
(0, import_class_validator671.IsString)({ message: "debe ser un texto" }),
|
|
38551
|
-
(0, import_class_validator671.Length)(1,
|
|
38547
|
+
(0, import_class_validator671.Length)(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
38552
38548
|
(0, import_class_transformer694.Expose)()
|
|
38553
38549
|
], UbicacionTdCDTO.prototype, "Latitud", 2);
|
|
38554
38550
|
|
package/dist/index.mjs
CHANGED
|
@@ -37434,27 +37434,25 @@ var ContratistaDTO = class {
|
|
|
37434
37434
|
};
|
|
37435
37435
|
__decorateClass([
|
|
37436
37436
|
IsString530({ message: "debe ser un texto" }),
|
|
37437
|
-
Length319(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37438
37437
|
Expose655()
|
|
37439
37438
|
], ContratistaDTO.prototype, "CO", 2);
|
|
37440
37439
|
__decorateClass([
|
|
37441
37440
|
IsString530({ message: "debe ser un texto" }),
|
|
37442
|
-
Length319(
|
|
37441
|
+
Length319(0, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37443
37442
|
Expose655()
|
|
37444
37443
|
], ContratistaDTO.prototype, "Contratista", 2);
|
|
37445
37444
|
__decorateClass([
|
|
37446
37445
|
IsString530({ message: "debe ser un texto" }),
|
|
37447
|
-
Length319(1, 122, { message: "debe tener entre 1 y 122 caracteres" }),
|
|
37448
37446
|
Expose655()
|
|
37449
37447
|
], ContratistaDTO.prototype, "Contrato", 2);
|
|
37450
37448
|
__decorateClass([
|
|
37451
37449
|
IsString530({ message: "debe ser un texto" }),
|
|
37452
|
-
Length319(1,
|
|
37450
|
+
Length319(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37453
37451
|
Expose655()
|
|
37454
37452
|
], ContratistaDTO.prototype, "Codigo_Externo", 2);
|
|
37455
37453
|
__decorateClass([
|
|
37456
37454
|
IsString530({ message: "debe ser un texto" }),
|
|
37457
|
-
Length319(1,
|
|
37455
|
+
Length319(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37458
37456
|
Expose655()
|
|
37459
37457
|
], ContratistaDTO.prototype, "Codigo_TdC_Externo", 2);
|
|
37460
37458
|
|
|
@@ -37828,19 +37826,17 @@ __decorateClass([
|
|
|
37828
37826
|
|
|
37829
37827
|
// src/operativa/procesos/tdc/chile/dto/operacion-dto.ts
|
|
37830
37828
|
import { Expose as Expose666 } from "class-transformer";
|
|
37831
|
-
import { IsString as IsString540
|
|
37829
|
+
import { IsString as IsString540 } from "class-validator";
|
|
37832
37830
|
var OperacionDTO = class {
|
|
37833
37831
|
Codigo = "";
|
|
37834
37832
|
Tipo = "";
|
|
37835
37833
|
};
|
|
37836
37834
|
__decorateClass([
|
|
37837
37835
|
IsString540({ message: "debe ser un texto" }),
|
|
37838
|
-
Length329(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37839
37836
|
Expose666()
|
|
37840
37837
|
], OperacionDTO.prototype, "Codigo", 2);
|
|
37841
37838
|
__decorateClass([
|
|
37842
37839
|
IsString540({ message: "debe ser un texto" }),
|
|
37843
|
-
Length329(1, 36, { message: "debe tener entre 1 y 36 caracteres" }),
|
|
37844
37840
|
Expose666()
|
|
37845
37841
|
], OperacionDTO.prototype, "Tipo", 2);
|
|
37846
37842
|
|
|
@@ -37877,42 +37873,42 @@ var UbicacionTdCDTO = class {
|
|
|
37877
37873
|
};
|
|
37878
37874
|
__decorateClass([
|
|
37879
37875
|
IsString542({ message: "debe ser un texto" }),
|
|
37880
|
-
Length331(1,
|
|
37876
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37881
37877
|
Expose668()
|
|
37882
37878
|
], UbicacionTdCDTO.prototype, "Municipio", 2);
|
|
37883
37879
|
__decorateClass([
|
|
37884
37880
|
IsString542({ message: "debe ser un texto" }),
|
|
37885
|
-
Length331(0,
|
|
37881
|
+
Length331(0, 200, { message: "debe tener entre 0 y 200 caracteres" }),
|
|
37886
37882
|
Expose668()
|
|
37887
37883
|
], UbicacionTdCDTO.prototype, "Tipo_Agrupacion", 2);
|
|
37888
37884
|
__decorateClass([
|
|
37889
37885
|
IsString542({ message: "debe ser un texto" }),
|
|
37890
|
-
Length331(1,
|
|
37886
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37891
37887
|
Expose668()
|
|
37892
37888
|
], UbicacionTdCDTO.prototype, "Direccion", 2);
|
|
37893
37889
|
__decorateClass([
|
|
37894
37890
|
IsString542({ message: "debe ser un texto" }),
|
|
37895
|
-
Length331(1,
|
|
37891
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37896
37892
|
Expose668()
|
|
37897
37893
|
], UbicacionTdCDTO.prototype, "Provincia", 2);
|
|
37898
37894
|
__decorateClass([
|
|
37899
37895
|
IsString542({ message: "debe ser un texto" }),
|
|
37900
|
-
Length331(1,
|
|
37896
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37901
37897
|
Expose668()
|
|
37902
37898
|
], UbicacionTdCDTO.prototype, "Ruta_Lectura", 2);
|
|
37903
37899
|
__decorateClass([
|
|
37904
37900
|
IsString542({ message: "debe ser un texto" }),
|
|
37905
|
-
Length331(1,
|
|
37901
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37906
37902
|
Expose668()
|
|
37907
37903
|
], UbicacionTdCDTO.prototype, "Zona", 2);
|
|
37908
37904
|
__decorateClass([
|
|
37909
37905
|
IsString542({ message: "debe ser un texto" }),
|
|
37910
|
-
Length331(1,
|
|
37906
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37911
37907
|
Expose668()
|
|
37912
37908
|
], UbicacionTdCDTO.prototype, "Longitud", 2);
|
|
37913
37909
|
__decorateClass([
|
|
37914
37910
|
IsString542({ message: "debe ser un texto" }),
|
|
37915
|
-
Length331(1,
|
|
37911
|
+
Length331(1, 200, { message: "debe tener entre 1 y 200 caracteres" }),
|
|
37916
37912
|
Expose668()
|
|
37917
37913
|
], UbicacionTdCDTO.prototype, "Latitud", 2);
|
|
37918
37914
|
|