sigo-entities 1.2.397 → 1.2.399
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/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -25
- package/dist/index.mjs +1 -26
- 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
package/dist/index.d.mts
CHANGED
|
@@ -9463,8 +9463,6 @@ declare class TdcOrderStockENTITY {
|
|
|
9463
9463
|
stock_quantity_employee: StockQuantityEmployeeDTO[];
|
|
9464
9464
|
state_consumption: StateInventory;
|
|
9465
9465
|
state_replacement: StateInventory;
|
|
9466
|
-
quantity_original: number;
|
|
9467
|
-
lot: string;
|
|
9468
9466
|
}
|
|
9469
9467
|
|
|
9470
9468
|
declare class CodeNameDto {
|
package/dist/index.d.ts
CHANGED
|
@@ -9463,8 +9463,6 @@ declare class TdcOrderStockENTITY {
|
|
|
9463
9463
|
stock_quantity_employee: StockQuantityEmployeeDTO[];
|
|
9464
9464
|
state_consumption: StateInventory;
|
|
9465
9465
|
state_replacement: StateInventory;
|
|
9466
|
-
quantity_original: number;
|
|
9467
|
-
lot: string;
|
|
9468
9466
|
}
|
|
9469
9467
|
|
|
9470
9468
|
declare class CodeNameDto {
|
package/dist/index.js
CHANGED
|
@@ -38381,68 +38381,55 @@ __decorateClass([
|
|
|
38381
38381
|
], InventarioDTO.prototype, "Codigo", 2);
|
|
38382
38382
|
__decorateClass([
|
|
38383
38383
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38384
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38385
38384
|
(0, import_class_transformer690.Expose)()
|
|
38386
38385
|
], InventarioDTO.prototype, "Descripcion", 2);
|
|
38387
38386
|
__decorateClass([
|
|
38388
38387
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38389
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38390
38388
|
(0, import_class_transformer690.Expose)()
|
|
38391
38389
|
], InventarioDTO.prototype, "UM", 2);
|
|
38392
38390
|
__decorateClass([
|
|
38393
38391
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38394
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38395
38392
|
(0, import_class_transformer690.Expose)()
|
|
38396
38393
|
], InventarioDTO.prototype, "Tipo_Material", 2);
|
|
38397
38394
|
__decorateClass([
|
|
38398
38395
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38399
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38400
38396
|
(0, import_class_transformer690.Expose)()
|
|
38401
38397
|
], InventarioDTO.prototype, "Acci\xF3n", 2);
|
|
38402
38398
|
__decorateClass([
|
|
38403
38399
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38404
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38405
38400
|
(0, import_class_transformer690.Expose)()
|
|
38406
38401
|
], InventarioDTO.prototype, "Serie", 2);
|
|
38407
38402
|
__decorateClass([
|
|
38408
38403
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38409
|
-
(0, import_class_validator667.Length)(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
38410
38404
|
(0, import_class_transformer690.Expose)()
|
|
38411
38405
|
], InventarioDTO.prototype, "Numero_Medidor", 2);
|
|
38412
38406
|
__decorateClass([
|
|
38413
38407
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38414
|
-
(0, import_class_validator667.Length)(0, 16, { message: "debe tener entre 0 y 16 caracteres" }),
|
|
38415
38408
|
(0, import_class_transformer690.Expose)()
|
|
38416
38409
|
], InventarioDTO.prototype, "Tipo_Registrador", 2);
|
|
38417
38410
|
__decorateClass([
|
|
38418
38411
|
(0, import_class_transformer690.Type)(() => MarcaDTO),
|
|
38419
|
-
(0, import_class_validator667.IsNotEmpty)({ message: "es requerido" }),
|
|
38420
38412
|
(0, import_class_transformer690.Expose)(),
|
|
38421
38413
|
(0, import_class_validator667.ValidateNested)()
|
|
38422
38414
|
], InventarioDTO.prototype, "Marca", 2);
|
|
38423
38415
|
__decorateClass([
|
|
38424
38416
|
(0, import_class_transformer690.Type)(() => ModeloDTO),
|
|
38425
|
-
(0, import_class_validator667.IsNotEmpty)({ message: "es requerido" }),
|
|
38426
38417
|
(0, import_class_transformer690.Expose)(),
|
|
38427
38418
|
(0, import_class_validator667.ValidateNested)()
|
|
38428
38419
|
], InventarioDTO.prototype, "Modelo", 2);
|
|
38429
38420
|
__decorateClass([
|
|
38430
38421
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38431
|
-
(0, import_class_validator667.Length)(0, 11, { message: "debe tener entre 0 y 11 caracteres" }),
|
|
38432
38422
|
(0, import_class_transformer690.Expose)()
|
|
38433
38423
|
], InventarioDTO.prototype, "Tipo_Tecnologia", 2);
|
|
38434
38424
|
__decorateClass([
|
|
38435
38425
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38436
|
-
(0, import_class_validator667.Length)(0, 14, { message: "debe tener entre 0 y 14 caracteres" }),
|
|
38437
38426
|
(0, import_class_transformer690.Expose)()
|
|
38438
38427
|
], InventarioDTO.prototype, "Ubicacion", 2);
|
|
38439
38428
|
__decorateClass([
|
|
38440
38429
|
(0, import_class_validator667.IsString)({ message: "debe ser un texto" }),
|
|
38441
|
-
(0, import_class_validator667.Length)(0, 18, { message: "debe tener entre 0 y 18 caracteres" }),
|
|
38442
38430
|
(0, import_class_transformer690.Expose)()
|
|
38443
38431
|
], InventarioDTO.prototype, "Propiedad", 2);
|
|
38444
38432
|
__decorateClass([
|
|
38445
|
-
(0, import_class_validator667.IsNotEmpty)({ message: "es requerido" }),
|
|
38446
38433
|
(0, import_class_transformer690.Type)(() => Date),
|
|
38447
38434
|
(0, import_class_validator667.IsDate)({ message: "debe ser una fecha" }),
|
|
38448
38435
|
(0, import_class_transformer690.Expose)()
|
|
@@ -49961,8 +49948,6 @@ var TdcOrderStockENTITY = class {
|
|
|
49961
49948
|
stock_quantity_employee = [];
|
|
49962
49949
|
state_consumption;
|
|
49963
49950
|
state_replacement;
|
|
49964
|
-
quantity_original;
|
|
49965
|
-
lot;
|
|
49966
49951
|
};
|
|
49967
49952
|
__decorateClass([
|
|
49968
49953
|
(0, import_class_validator757.IsDefined)({ message: "El campo _id es obligatorio." }),
|
|
@@ -50018,16 +50003,6 @@ __decorateClass([
|
|
|
50018
50003
|
(0, import_class_transformer780.Expose)(),
|
|
50019
50004
|
(0, import_class_validator757.IsEnum)(StateInventory, { message: `El campo estado reposici\xF3n debe ser uno de: ${Object.values(StateInventory).join(", ")}.` })
|
|
50020
50005
|
], TdcOrderStockENTITY.prototype, "state_replacement", 2);
|
|
50021
|
-
__decorateClass([
|
|
50022
|
-
(0, import_class_transformer780.Expose)(),
|
|
50023
|
-
(0, import_class_validator757.IsDefined)({ message: "El campo quantity original es obligatorio." }),
|
|
50024
|
-
(0, import_class_validator757.IsNumber)()
|
|
50025
|
-
], TdcOrderStockENTITY.prototype, "quantity_original", 2);
|
|
50026
|
-
__decorateClass([
|
|
50027
|
-
(0, import_class_validator757.IsString)({ message: "El campo lot debe ser una cadena de texto v\xE1lida" }),
|
|
50028
|
-
(0, import_class_validator757.MaxLength)(100, { message: "El campo lot no puede superar los 100 caracteres" }),
|
|
50029
|
-
(0, import_class_transformer780.Expose)()
|
|
50030
|
-
], TdcOrderStockENTITY.prototype, "lot", 2);
|
|
50031
50006
|
|
|
50032
50007
|
// src/v2/dtos/CodeName.ts
|
|
50033
50008
|
var import_class_transformer781 = require("class-transformer");
|
package/dist/index.mjs
CHANGED
|
@@ -37677,7 +37677,7 @@ __decorateClass([
|
|
|
37677
37677
|
], FechasDTO.prototype, "Fin_Previsto", 2);
|
|
37678
37678
|
|
|
37679
37679
|
// src/operativa/procesos/tdc/chile/dto/inventario-dto.ts
|
|
37680
|
-
import { IsDate as IsDate147,
|
|
37680
|
+
import { IsDate as IsDate147, IsString as IsString538, Length as Length327, ValidateNested as ValidateNested386 } from "class-validator";
|
|
37681
37681
|
|
|
37682
37682
|
// src/operativa/procesos/tdc/chile/dto/marca-dto.ts
|
|
37683
37683
|
import { Expose as Expose662 } from "class-transformer";
|
|
@@ -37740,68 +37740,55 @@ __decorateClass([
|
|
|
37740
37740
|
], InventarioDTO.prototype, "Codigo", 2);
|
|
37741
37741
|
__decorateClass([
|
|
37742
37742
|
IsString538({ message: "debe ser un texto" }),
|
|
37743
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37744
37743
|
Expose664()
|
|
37745
37744
|
], InventarioDTO.prototype, "Descripcion", 2);
|
|
37746
37745
|
__decorateClass([
|
|
37747
37746
|
IsString538({ message: "debe ser un texto" }),
|
|
37748
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37749
37747
|
Expose664()
|
|
37750
37748
|
], InventarioDTO.prototype, "UM", 2);
|
|
37751
37749
|
__decorateClass([
|
|
37752
37750
|
IsString538({ message: "debe ser un texto" }),
|
|
37753
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37754
37751
|
Expose664()
|
|
37755
37752
|
], InventarioDTO.prototype, "Tipo_Material", 2);
|
|
37756
37753
|
__decorateClass([
|
|
37757
37754
|
IsString538({ message: "debe ser un texto" }),
|
|
37758
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37759
37755
|
Expose664()
|
|
37760
37756
|
], InventarioDTO.prototype, "Acci\xF3n", 2);
|
|
37761
37757
|
__decorateClass([
|
|
37762
37758
|
IsString538({ message: "debe ser un texto" }),
|
|
37763
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37764
37759
|
Expose664()
|
|
37765
37760
|
], InventarioDTO.prototype, "Serie", 2);
|
|
37766
37761
|
__decorateClass([
|
|
37767
37762
|
IsString538({ message: "debe ser un texto" }),
|
|
37768
|
-
Length327(1, 32, { message: "debe tener entre 1 y 32 caracteres" }),
|
|
37769
37763
|
Expose664()
|
|
37770
37764
|
], InventarioDTO.prototype, "Numero_Medidor", 2);
|
|
37771
37765
|
__decorateClass([
|
|
37772
37766
|
IsString538({ message: "debe ser un texto" }),
|
|
37773
|
-
Length327(0, 16, { message: "debe tener entre 0 y 16 caracteres" }),
|
|
37774
37767
|
Expose664()
|
|
37775
37768
|
], InventarioDTO.prototype, "Tipo_Registrador", 2);
|
|
37776
37769
|
__decorateClass([
|
|
37777
37770
|
Type435(() => MarcaDTO),
|
|
37778
|
-
IsNotEmpty448({ message: "es requerido" }),
|
|
37779
37771
|
Expose664(),
|
|
37780
37772
|
ValidateNested386()
|
|
37781
37773
|
], InventarioDTO.prototype, "Marca", 2);
|
|
37782
37774
|
__decorateClass([
|
|
37783
37775
|
Type435(() => ModeloDTO),
|
|
37784
|
-
IsNotEmpty448({ message: "es requerido" }),
|
|
37785
37776
|
Expose664(),
|
|
37786
37777
|
ValidateNested386()
|
|
37787
37778
|
], InventarioDTO.prototype, "Modelo", 2);
|
|
37788
37779
|
__decorateClass([
|
|
37789
37780
|
IsString538({ message: "debe ser un texto" }),
|
|
37790
|
-
Length327(0, 11, { message: "debe tener entre 0 y 11 caracteres" }),
|
|
37791
37781
|
Expose664()
|
|
37792
37782
|
], InventarioDTO.prototype, "Tipo_Tecnologia", 2);
|
|
37793
37783
|
__decorateClass([
|
|
37794
37784
|
IsString538({ message: "debe ser un texto" }),
|
|
37795
|
-
Length327(0, 14, { message: "debe tener entre 0 y 14 caracteres" }),
|
|
37796
37785
|
Expose664()
|
|
37797
37786
|
], InventarioDTO.prototype, "Ubicacion", 2);
|
|
37798
37787
|
__decorateClass([
|
|
37799
37788
|
IsString538({ message: "debe ser un texto" }),
|
|
37800
|
-
Length327(0, 18, { message: "debe tener entre 0 y 18 caracteres" }),
|
|
37801
37789
|
Expose664()
|
|
37802
37790
|
], InventarioDTO.prototype, "Propiedad", 2);
|
|
37803
37791
|
__decorateClass([
|
|
37804
|
-
IsNotEmpty448({ message: "es requerido" }),
|
|
37805
37792
|
Type435(() => Date),
|
|
37806
37793
|
IsDate147({ message: "debe ser una fecha" }),
|
|
37807
37794
|
Expose664()
|
|
@@ -49469,8 +49456,6 @@ var TdcOrderStockENTITY = class {
|
|
|
49469
49456
|
stock_quantity_employee = [];
|
|
49470
49457
|
state_consumption;
|
|
49471
49458
|
state_replacement;
|
|
49472
|
-
quantity_original;
|
|
49473
|
-
lot;
|
|
49474
49459
|
};
|
|
49475
49460
|
__decorateClass([
|
|
49476
49461
|
IsDefined255({ message: "El campo _id es obligatorio." }),
|
|
@@ -49526,16 +49511,6 @@ __decorateClass([
|
|
|
49526
49511
|
Expose753(),
|
|
49527
49512
|
IsEnum39(StateInventory, { message: `El campo estado reposici\xF3n debe ser uno de: ${Object.values(StateInventory).join(", ")}.` })
|
|
49528
49513
|
], TdcOrderStockENTITY.prototype, "state_replacement", 2);
|
|
49529
|
-
__decorateClass([
|
|
49530
|
-
Expose753(),
|
|
49531
|
-
IsDefined255({ message: "El campo quantity original es obligatorio." }),
|
|
49532
|
-
IsNumber493()
|
|
49533
|
-
], TdcOrderStockENTITY.prototype, "quantity_original", 2);
|
|
49534
|
-
__decorateClass([
|
|
49535
|
-
IsString623({ message: "El campo lot debe ser una cadena de texto v\xE1lida" }),
|
|
49536
|
-
MaxLength7(100, { message: "El campo lot no puede superar los 100 caracteres" }),
|
|
49537
|
-
Expose753()
|
|
49538
|
-
], TdcOrderStockENTITY.prototype, "lot", 2);
|
|
49539
49514
|
|
|
49540
49515
|
// src/v2/dtos/CodeName.ts
|
|
49541
49516
|
import { Expose as Expose754, Transform as Transform111 } from "class-transformer";
|
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/`.
|