workspace/PLAN-ORGANIZACION-WORKSPACE.md
rckrdmrd 49155822ae fix: Resolve TypeScript compilation errors across all projects
Platform Marketing Content:
- Add PaginationParams, PaginationMeta, PaginatedResponse interfaces
- Fix JwtAuthGuard import paths (common/guards instead of modules/auth)
- Add missing fields to CRM interfaces (address, keywords, features, benefits)
- Install @nestjs/throttler dependency

ERP Suite - Construccion:
- Create tsconfig.node.json for web frontend
- Add vite-env.d.ts for Vite types
- Fix implicit return errors in Express controllers
- Prefix unused parameters with underscore

ERP Suite - ERP Core:
- Export PoolClient type from database config
- Fix invoice type comparison (customer/supplier vs out_invoice)
- Refactor base.service.ts query handling for proper type inference
- Rename Role type to RoleType to avoid conflict with entity
- Fix ProtectedRoute to use role?.name instead of roles array

ERP Suite - POS Micro:
- Add vite-env.d.ts for Vite types
- Fix Sale property names (discountAmount, changeAmount)
- Export TodaySummary interface from sales service

All projects now pass npm install and npm run build successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 22:35:55 -06:00

695 lines
24 KiB
Markdown

# PLAN DE ORGANIZACIÓN DEL WORKSPACE
**Fecha:** 2025-12-08
**Versión:** 1.0.0
**Estado:** Propuesta
---
## RESUMEN EJECUTIVO
Este documento presenta un plan integral para organizar el workspace, centralizando funcionalidades compartidas en `core/`, definiendo módulos claros para cada proyecto, y eliminando duplicación de código.
### Estado Actual
| Proyecto | Estado | Backend | Frontend | BD |
|----------|--------|---------|----------|-----|
| **Gamilit** | ✅ 60% MVP | NestJS | React 19 | PostgreSQL 9 schemas |
| **Trading Platform** | 🔄 50% | Express | React 18 | PostgreSQL 8 schemas |
| **ERP Suite** | 🔄 35% | Express | React 18 | PostgreSQL 12+ schemas |
| **Marketing Content** | 📋 Inicio | Express | React | - |
| **Betting/Inmobiliaria** | 📋 Planificación | - | - | - |
### Problemas Identificados
1. **`core/modules/` vacío** - Solo carpetas sin código
2. **`core/catalog/_reference/` vacío** - Documentación sin implementación
3. **Código duplicado** entre proyectos (~5,000+ líneas)
4. **Frameworks mixtos** - NestJS vs Express
5. **Patrones inconsistentes** - Diferentes formas de hacer lo mismo
---
## PARTE 1: ESTRUCTURA DE CORE/
### 1.1 Estructura Propuesta
```
core/
├── modules/ # CÓDIGO COMPARTIDO EJECUTABLE
│ ├── utils/ # Utilidades universales
│ │ ├── date.util.ts
│ │ ├── string.util.ts
│ │ ├── validation.util.ts
│ │ ├── format.util.ts
│ │ ├── crypto.util.ts
│ │ └── index.ts
│ │
│ ├── auth/ # Autenticación (adapter pattern)
│ │ ├── jwt/
│ │ │ ├── jwt.service.ts
│ │ │ ├── jwt.guard.ts
│ │ │ └── jwt.strategy.ts
│ │ ├── passport/
│ │ │ ├── google.strategy.ts
│ │ │ ├── facebook.strategy.ts
│ │ │ └── github.strategy.ts
│ │ ├── adapters/
│ │ │ ├── nestjs.adapter.ts
│ │ │ └── express.adapter.ts
│ │ └── index.ts
│ │
│ ├── database/ # Schemas y migraciones base
│ │ ├── schemas/
│ │ │ ├── auth.base.sql
│ │ │ ├── audit.base.sql
│ │ │ └── notifications.base.sql
│ │ ├── entities/
│ │ │ ├── base.entity.ts
│ │ │ └── tenant.entity.ts
│ │ └── migrations/
│ │
│ ├── api/ # Patrones de API
│ │ ├── response.ts # ApiResponse format
│ │ ├── pagination.ts
│ │ ├── filters.ts
│ │ └── interceptors/
│ │ ├── transform-response.interceptor.ts
│ │ └── logging.interceptor.ts
│ │
│ ├── notifications/ # Sistema de notificaciones
│ │ ├── email/
│ │ ├── push/
│ │ ├── in-app/
│ │ └── index.ts
│ │
│ ├── payments/ # Integración de pagos
│ │ ├── stripe/
│ │ ├── webhooks/
│ │ └── index.ts
│ │
│ ├── websocket/ # WebSocket patterns
│ │ ├── socket.service.ts
│ │ ├── rooms.ts
│ │ └── index.ts
│ │
│ └── multitenant/ # Multi-tenancy
│ ├── rls.interceptor.ts
│ ├── tenant.context.ts
│ └── index.ts
├── catalog/ # DOCUMENTACIÓN + REFERENCIA (ya existe)
│ ├── auth/
│ │ ├── README.md
│ │ ├── IMPLEMENTATION.md
│ │ └── _reference/ # ← POBLAR CON CÓDIGO DE GAMILIT
│ ├── ...
├── constants/ # CONSTANTES GLOBALES (NUEVO)
│ ├── enums.constants.ts # Enums universales
│ ├── regex.constants.ts # Patrones regex
│ └── index.ts
├── types/ # TIPOS COMPARTIDOS (NUEVO)
│ ├── api.types.ts
│ ├── auth.types.ts
│ ├── common.types.ts
│ └── index.ts
├── frontend/ # COMPONENTES FRONTEND COMPARTIDOS (NUEVO)
│ ├── components/
│ │ ├── atoms/
│ │ ├── molecules/
│ │ └── organisms/
│ ├── hooks/
│ ├── utils/
│ └── themes/
├── orchestration/ # Sistema de agentes (ya existe)
├── standards/ # Estándares técnicos (ya existe)
└── package.json # Para publicar como paquete npm
```
### 1.2 Prioridad de Implementación
| Prioridad | Módulo | Origen | Impacto |
|-----------|--------|--------|---------|
| **P0** | `utils/` | Gamilit | Todos los proyectos |
| **P0** | `constants/` | Gamilit | Todos los proyectos |
| **P0** | `types/` | Nuevo | Todos los proyectos |
| **P1** | `auth/` | Gamilit + Trading | Backend |
| **P1** | `api/interceptors/` | Gamilit | Backend |
| **P2** | `database/schemas/` | ERP + Gamilit | Base de datos |
| **P2** | `notifications/` | Gamilit | Backend |
| **P3** | `payments/` | Trading | Backend |
| **P3** | `websocket/` | Trading + Gamilit | Backend |
| **P3** | `frontend/` | Gamilit | Frontend |
---
## PARTE 2: ORGANIZACIÓN DE TRADING PLATFORM
### 2.1 Estado Actual
```
trading-platform/apps/
├── backend/ # Express.js - 55 archivos, 15K+ líneas ✅
├── frontend/ # React 18 - 49 archivos ✅
├── ml-engine/ # Python FastAPI - 27 archivos ✅
├── llm-agent/ # Python FastAPI - 18 archivos ✅
├── trading-agents/ # Python FastAPI - 19 archivos ✅
├── data-service/ # Python FastAPI - 8 archivos ⚠️ INCOMPLETO
└── database/ # PostgreSQL - 98 archivos DDL ✅
```
### 2.2 Problemas Identificados
1. **data-service incompleto** - Solo 20% implementado
2. **Sin tests** - Framework configurado pero sin tests reales
3. **URLs hardcodeadas** entre servicios
4. **Sin retry/circuit breaker** en comunicación inter-servicios
5. **Documentación API incompleta**
### 2.3 Reorganización Propuesta
```
trading-platform/
├── apps/
│ ├── backend/ # API principal (mantener)
│ │ └── src/
│ │ ├── modules/
│ │ │ ├── auth/ # ← Usar @core/auth adapter
│ │ │ ├── users/
│ │ │ ├── trading/
│ │ │ ├── portfolio/
│ │ │ ├── education/
│ │ │ ├── payments/ # ← Usar @core/payments
│ │ │ └── admin/
│ │ └── shared/
│ │ ├── clients/ # Clientes para otros servicios
│ │ ├── middleware/
│ │ └── utils/ # ← Usar @core/utils
│ │
│ ├── frontend/ # UI (mantener)
│ │
│ ├── ml-services/ # RENOMBRAR: Agrupa ML
│ │ ├── prediction-engine/ # Ex ml-engine
│ │ └── signal-generator/ # Nuevo: extraer de ml-engine
│ │
│ ├── ai-services/ # RENOMBRAR: Agrupa IA
│ │ ├── copilot/ # Ex llm-agent
│ │ └── market-analyst/ # Nuevo: análisis de mercado
│ │
│ ├── trading-services/ # RENOMBRAR: Agrupa trading
│ │ ├── agents/ # Ex trading-agents
│ │ └── order-executor/ # Nuevo: ejecución de órdenes
│ │
│ ├── data-services/ # COMPLETAR
│ │ ├── market-data/ # Datos de mercado en tiempo real
│ │ ├── historical/ # Datos históricos
│ │ └── providers/ # Integraciones (Binance, etc.)
│ │
│ └── database/ # Mantener
├── packages/ # NUEVO: Código compartido interno
│ ├── sdk-typescript/ # Cliente para frontend/backend
│ ├── sdk-python/ # Cliente para servicios Python
│ ├── config/ # Configuración centralizada
│ └── types/ # Tipos compartidos
└── docker/
├── docker-compose.yml
└── docker-compose.dev.yml
```
### 2.4 Módulos por Funcionalidad
| Funcionalidad | App | Responsabilidad |
|---------------|-----|-----------------|
| **Autenticación** | backend | Login, OAuth, JWT, 2FA |
| **Usuarios** | backend | Perfiles, preferencias |
| **Trading** | backend + trading-services | Watchlists, órdenes, posiciones |
| **Portafolio** | backend | Gestión de inversiones |
| **Educación** | backend + frontend | Cursos, lecciones, certificados |
| **Pagos** | backend | Stripe, suscripciones |
| **Predicciones** | ml-services | Modelos ML, señales |
| **Copiloto IA** | ai-services | Chat, análisis, recomendaciones |
| **Agentes** | trading-services | Ejecución automática |
| **Datos** | data-services | Market data, históricos |
### 2.5 Tareas Pendientes Trading Platform
| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Completar data-service | P0 | Alto |
| Agregar tests unitarios | P0 | Alto |
| Implementar retry/circuit breaker | P1 | Medio |
| Crear SDK compartido | P1 | Medio |
| Documentar APIs (OpenAPI) | P1 | Medio |
| Implementar métricas Prometheus | P2 | Bajo |
| Centralizar logging | P2 | Bajo |
| Migrar auth a @core/auth | P2 | Medio |
---
## PARTE 3: ORGANIZACIÓN DE ERP-SUITE
### 3.1 Estado Actual
```
erp-suite/apps/
├── erp-core/ # Base 60% ✅
│ ├── backend/ # 14 módulos, 100+ archivos
│ ├── frontend/ # 165 archivos
│ └── database/ # 12 schemas, 130+ tablas
├── verticales/
│ ├── construccion/ # 35% - DDL parcial ⚠️
│ ├── vidrio-templado/ # 25% - Solo docs 📋
│ ├── mecanicas-diesel/ # 95% - DDL completo ✅
│ ├── retail/ # 25% - Solo docs 📋
│ └── clinicas/ # 25% - Solo docs 📋
├── products/
│ ├── pos-micro/ # 80% MVP ✅
│ └── erp-basico/ # 0% ❌
├── saas/ # Billing layer
└── shared-libs/ # VACÍO ❌
```
### 3.2 Problemas Identificados
1. **shared-libs vacío** - Sin código compartido entre verticales
2. **Verticales sin código** - Solo documentación en la mayoría
3. **Inconsistencia de stack** - Express en core, NestJS en POS
4. **Sin herencia clara** - Verticales no extienden erp-core
### 3.3 Arquitectura de Herencia Propuesta
```
┌─────────────────┐
│ @core/ │
│ (workspace) │
└────────┬────────┘
┌────────▼────────┐
│ erp-core │
│ (60-70%) │
└────────┬────────┘
┌────────────────────┼────────────────────┐
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
│ Construcción │ │ Retail │ │ Clínicas │
│ (+30% custom)│ │ (+40% custom)│ │ (+50% custom)│
└───────────────┘ └───────────────┘ └───────────────┘
```
### 3.4 Reorganización Propuesta
```
erp-suite/
├── apps/
│ ├── erp-core/ # BASE GENÉRICA
│ │ ├── backend/
│ │ │ └── src/
│ │ │ ├── modules/
│ │ │ │ ├── auth/ # Autenticación base
│ │ │ │ ├── core/ # Catálogos maestros
│ │ │ │ ├── partners/ # Clientes/Proveedores
│ │ │ │ ├── inventory/ # Inventario base
│ │ │ │ ├── sales/ # Ventas base
│ │ │ │ ├── purchases/ # Compras base
│ │ │ │ ├── financial/ # Contabilidad base
│ │ │ │ ├── hr/ # RRHH base
│ │ │ │ ├── projects/ # Proyectos base
│ │ │ │ ├── crm/ # CRM base
│ │ │ │ └── system/ # Sistema
│ │ │ └── shared/ # Compartido dentro de core
│ │ ├── frontend/
│ │ └── database/
│ │
│ ├── verticales/
│ │ ├── construccion/
│ │ │ ├── backend/
│ │ │ │ └── src/
│ │ │ │ ├── modules/
│ │ │ │ │ ├── construction/ # Proyectos de obra
│ │ │ │ │ ├── hse/ # Seguridad e higiene
│ │ │ │ │ ├── budgets/ # Presupuestos
│ │ │ │ │ ├── progress/ # Avances de obra
│ │ │ │ │ └── infonavit/ # Integración INFONAVIT
│ │ │ │ └── extends/ # EXTENSIONES de erp-core
│ │ │ │ ├── hr.extension.ts
│ │ │ │ └── projects.extension.ts
│ │ │ ├── frontend/
│ │ │ └── database/
│ │ │
│ │ ├── mecanicas-diesel/
│ │ │ ├── backend/
│ │ │ │ └── src/modules/
│ │ │ │ ├── service-orders/ # Órdenes de servicio
│ │ │ │ ├── diagnostics/ # Diagnósticos
│ │ │ │ ├── vehicles/ # Vehículos
│ │ │ │ └── parts/ # Refacciones
│ │ │ └── ...
│ │ │
│ │ ├── vidrio-templado/
│ │ │ └── ... (por definir)
│ │ │
│ │ ├── retail/
│ │ │ ├── backend/
│ │ │ │ └── src/modules/
│ │ │ │ ├── pos/ # Punto de venta
│ │ │ │ ├── cash/ # Caja
│ │ │ │ ├── pricing/ # Precios
│ │ │ │ └── ecommerce/ # E-commerce
│ │ │ └── ...
│ │ │
│ │ └── clinicas/
│ │ ├── backend/
│ │ │ └── src/modules/
│ │ │ ├── patients/ # Pacientes
│ │ │ ├── appointments/ # Citas
│ │ │ ├── consultations/ # Consultas
│ │ │ ├── prescriptions/ # Recetas
│ │ │ ├── laboratory/ # Laboratorio
│ │ │ └── pharmacy/ # Farmacia
│ │ └── ...
│ │
│ └── products/
│ ├── pos-micro/ # POS standalone
│ └── erp-basico/ # ERP simplificado
├── packages/ # NUEVO: Shared interno
│ ├── erp-sdk/ # SDK para verticales
│ ├── erp-types/ # Tipos compartidos
│ ├── erp-components/ # Componentes UI
│ └── erp-utils/ # Utilidades
└── docker/
```
### 3.5 Módulos por Vertical
| Módulo | Core | Construcción | Mecánicas | Retail | Clínicas |
|--------|:----:|:------------:|:---------:|:------:|:--------:|
| Auth | ✅ | Hereda | Hereda | Hereda | Hereda |
| Partners | ✅ | Hereda | Hereda | Hereda | Hereda |
| Inventory | ✅ | Extiende | Extiende | Extiende | Extiende |
| Sales | ✅ | - | - | Extiende | - |
| Purchases | ✅ | Extiende | Extiende | Extiende | Extiende |
| Financial | ✅ | Extiende | Hereda | Hereda | Hereda |
| HR | ✅ | Extiende | Hereda | Hereda | Hereda |
| Projects | ✅ | Extiende | - | - | - |
| Construction | - | ✅ | - | - | - |
| HSE | - | ✅ | - | - | - |
| Service Orders | - | - | ✅ | - | - |
| Diagnostics | - | - | ✅ | - | - |
| POS | - | - | - | ✅ | - |
| Cash | - | - | - | ✅ | - |
| Patients | - | - | - | - | ✅ |
| Appointments | - | - | - | - | ✅ |
| Medical Records | - | - | - | - | ✅ |
### 3.6 Tareas Pendientes ERP-Suite
| Tarea | Vertical | Prioridad | Esfuerzo |
|-------|----------|-----------|----------|
| Implementar backend Mecánicas | mecanicas-diesel | P0 | Alto |
| Completar backend Construcción | construccion | P0 | Alto |
| Crear DDL Retail | retail | P1 | Medio |
| Crear DDL Clínicas | clinicas | P1 | Medio |
| Crear DDL Vidrio Templado | vidrio-templado | P2 | Medio |
| Crear packages/erp-sdk | global | P1 | Alto |
| Implementar herencia de módulos | global | P1 | Alto |
| Poblar shared-libs | global | P1 | Medio |
---
## PARTE 4: PATRONES A REPLICAR DE GAMILIT
### 4.1 Sistema SSOT (Single Source of Truth)
**Qué es:** Constantes centralizadas que son la única fuente de verdad.
**Archivos a crear en core/constants/:**
```typescript
// core/constants/database.constants.ts
export const DB_SCHEMAS = {
AUTH: 'auth_management',
CORE: 'core',
// ... universales
};
export const getFullTableName = (schema: string, table: string) =>
`${schema}.${table}`;
```
```typescript
// core/constants/api.constants.ts
export const API_VERSION = 'v1';
export const API_BASE = `/api/${API_VERSION}`;
export const buildApiUrl = (route: string) => `${API_BASE}${route}`;
```
### 4.2 Sincronización Backend-Frontend
**Script:** `sync-enums.ts`
```bash
# Copia enums de backend a frontend
cp backend/src/shared/constants/enums.ts frontend/src/shared/constants/enums.ts
```
**Agregar a package.json:**
```json
{
"scripts": {
"sync:enums": "ts-node scripts/sync-enums.ts",
"postinstall": "npm run sync:enums"
}
}
```
### 4.3 Estructura de Módulos Backend
```
module/
├── module.module.ts # Decorador @Module
├── module.controller.ts # Endpoints
├── module.service.ts # Lógica de negocio
├── dto/ # Data Transfer Objects
│ ├── create-x.dto.ts
│ ├── update-x.dto.ts
│ └── query-x.dto.ts
├── entities/ # Entidades TypeORM
│ └── x.entity.ts
└── __tests__/ # Tests
├── module.service.spec.ts
└── module.controller.spec.ts
```
### 4.4 Estructura de Features Frontend
```
features/
└── gamification/
├── components/ # Componentes del feature
├── hooks/ # Hooks del feature
├── services/ # API calls
├── types/ # Tipos
└── utils/ # Utilidades
```
### 4.5 Shared Components (Atomic Design)
```
shared/components/
├── atoms/ # Button, Input, Label
├── molecules/ # FormField, Card, Alert
├── organisms/ # DataTable, Modal, Sidebar
└── templates/ # Layouts completos
```
---
## PARTE 5: ACCIONES INMEDIATAS
### Fase 1: Core Modules (Semana 1-2)
1. **Poblar `core/modules/utils/`**
- Copiar de `/projects/gamilit/apps/backend/src/shared/utils/`
- Adaptar para ser framework-agnostic
2. **Crear `core/constants/`**
- Copiar enums universales de Gamilit
- Crear regex patterns
3. **Crear `core/types/`**
- Tipos de API response
- Tipos de paginación
- Tipos de auth
4. **Poblar `core/catalog/_reference/`**
- Copiar código de referencia de Gamilit para auth, notifications, etc.
### Fase 2: Trading Platform (Semana 2-4)
1. **Completar data-service**
- Implementar feeds de datos de mercado
- Integrar con Binance/otros providers
2. **Crear packages/sdk-typescript**
- Cliente HTTP compartido
- Tipos de API
3. **Agregar tests básicos**
- Tests unitarios para servicios críticos
### Fase 3: ERP-Suite (Semana 3-6)
1. **Implementar backend Mecánicas Diesel**
- Basarse en DDL existente (100% completo)
- Crear services y controllers
2. **Completar backend Construcción**
- Implementar services para módulos existentes
3. **Crear packages/erp-sdk**
- SDK para que verticales extiendan erp-core
### Fase 4: Estandarización (Semana 6-8)
1. **Decisión de framework**
- Opción A: Migrar todo a NestJS
- Opción B: Mantener Express, crear adapters
- **Recomendación:** Opción B para minimizar reescritura
2. **Implementar patrones SSOT en todos los proyectos**
3. **Configurar CI/CD con validación de contratos**
---
## PARTE 6: MATRIZ DE RESPONSABILIDADES
### Por Proyecto
| Proyecto | Responsable | Stack | Prioridad |
|----------|-------------|-------|-----------|
| core/modules | Arquitecto | Agnostic | P0 |
| Gamilit | Dev Team A | NestJS | Mantenimiento |
| Trading Platform | Dev Team B | Express/Python | P1 |
| ERP-Suite/Core | Dev Team C | Express | P1 |
| ERP/Verticales | Dev Teams | Express | P2 |
### Por Módulo Core
| Módulo | Propietario | Consumidores |
|--------|-------------|--------------|
| utils | Core Team | Todos |
| auth | Core Team | Backend |
| database | Core Team | Backend, DDL |
| api | Core Team | Backend |
| notifications | Core Team | Backend |
| payments | Trading Team | Trading, ERP |
| frontend | Core Team | Frontend |
---
## PARTE 7: MÉTRICAS DE ÉXITO
### Corto Plazo (1 mes)
- [ ] `core/modules/utils/` implementado y en uso
- [ ] `core/constants/` creado con enums universales
- [ ] data-service de Trading Platform funcional
- [ ] Backend de Mecánicas Diesel iniciado
### Mediano Plazo (3 meses)
- [ ] 70% de código duplicado eliminado
- [ ] Todos los proyectos usando `@core/utils`
- [ ] DDL completo para todas las verticales ERP
- [ ] Tests con cobertura >50% en servicios críticos
### Largo Plazo (6 meses)
- [ ] Arquitectura de herencia ERP funcionando
- [ ] CI/CD con validación de contratos API
- [ ] Documentación completa (OpenAPI) para todas las APIs
- [ ] Todos los proyectos con estructura consistente
---
## ANEXO A: DECISIONES ARQUITECTÓNICAS
### ADR-001: Mantener Múltiples Frameworks
**Contexto:** Tenemos NestJS (Gamilit) y Express (Trading, ERP).
**Decisión:** Mantener ambos frameworks, crear adapters en core/.
**Razón:**
- Reescribir Gamilit a Express sería costoso
- NestJS tiene ventajas para proyectos modulares grandes
- Adapters permiten reutilización de lógica
### ADR-002: Monorepo con Packages Compartidos
**Contexto:** Código duplicado entre proyectos.
**Decisión:** Usar estructura de packages internos.
**Razón:**
- npm workspaces para gestionar dependencias
- Cada proyecto puede importar `@core/utils`, `@erp/sdk`
- Versionado independiente si es necesario
### ADR-003: SSOT para Constantes
**Contexto:** Constantes hardcodeadas en múltiples lugares.
**Decisión:** Centralizar en `core/constants/` con sincronización automática.
**Razón:**
- Evita inconsistencias
- Facilita refactoring
- Validación automática en CI
---
## ANEXO B: ARCHIVOS CLAVE
```
# Gamilit (Referencia)
/projects/gamilit/apps/backend/src/shared/constants/enums.constants.ts
/projects/gamilit/apps/backend/src/shared/constants/database.constants.ts
/projects/gamilit/apps/backend/src/shared/constants/routes.constants.ts
/projects/gamilit/apps/backend/src/shared/utils/
# Trading Platform
/projects/trading-platform/apps/backend/src/
/projects/trading-platform/apps/ml-engine/src/
/projects/trading-platform/apps/database/ddl/
# ERP Suite
/projects/erp-suite/apps/erp-core/backend/src/modules/
/projects/erp-suite/apps/erp-core/database/ddl/
/projects/erp-suite/apps/verticales/mecanicas-diesel/database/init/
# Core (a poblar)
/core/modules/
/core/constants/
/core/types/
/core/catalog/*/reference/
```
---
**Fin del documento**