🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
308 lines
11 KiB
Markdown
308 lines
11 KiB
Markdown
# Contexto del Proyecto: ERP Core
|
|
|
|
## Metadatos
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **Nombre** | ERP Core - Base Generica Reutilizable |
|
|
| **Tipo** | CORE-BASE (Proyecto Independiente) |
|
|
| **Nivel** | BASE para verticales y productos |
|
|
| **Estado** | En desarrollo |
|
|
| **Progreso** | 60% |
|
|
| **Version** | 1.2.0 |
|
|
| **Workspace** | `/home/isem/workspace-v1/projects/erp-core/` |
|
|
| **Fecha Migracion** | 2025-12-27 |
|
|
|
|
---
|
|
|
|
## VARIABLES PARA DIRECTIVAS GLOBALES
|
|
|
|
```yaml
|
|
# Identificacion del Proyecto
|
|
PROJECT: erp-core
|
|
PROJECT_NAME: ERP Core
|
|
PROJECT_LEVEL: CORE-BASE
|
|
|
|
# Paths Principales (WORKSPACE-V1)
|
|
WORKSPACE_ROOT: ~/workspace-v1
|
|
PROJECT_ROOT: ~/workspace-v1/projects/erp-core
|
|
APPS_ROOT: ~/workspace-v1/projects/erp-core
|
|
DOCS_ROOT: ~/workspace-v1/projects/erp-core/docs
|
|
ORCHESTRATION: ~/workspace-v1/projects/erp-core/orchestration
|
|
|
|
# Base Orchestration (Directivas y Perfiles)
|
|
DIRECTIVAS_PATH: ~/workspace-v1/orchestration/directivas
|
|
PERFILES_PATH: ~/workspace-v1/orchestration/agents/perfiles
|
|
CATALOG_PATH: ~/workspace-v1/shared/catalog
|
|
|
|
# Base de Datos
|
|
DB_NAME: erp_core
|
|
DB_DDL_PATH: ~/workspace-v1/projects/erp-core/database/ddl
|
|
DB_SCRIPTS_PATH: ~/workspace-v1/projects/erp-core/database
|
|
|
|
# Backend
|
|
BACKEND_ROOT: ~/workspace-v1/projects/erp-core/backend
|
|
BACKEND_SRC: ~/workspace-v1/projects/erp-core/backend/src
|
|
|
|
# Frontend
|
|
FRONTEND_ROOT: ~/workspace-v1/projects/erp-core/frontend
|
|
FRONTEND_SRC: ~/workspace-v1/projects/erp-core/frontend/src
|
|
```
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
ERP Core es la base generica que proporciona el 60-70% del codigo compartido para todas las verticales. Incluye modulos fundamentales como autenticacion, usuarios, roles, catalogos maestros, y funcionalidades comunes.
|
|
|
|
**Proyectos que extienden este core (independientes):**
|
|
- `projects/erp-construccion/` - ERP Construccion INFONAVIT
|
|
- `projects/erp-vidrio-templado/` - ERP Vidrio Templado
|
|
- `projects/erp-mecanicas-diesel/` - ERP Talleres Mecanicos
|
|
- `projects/erp-retail/` - ERP Punto de Venta
|
|
- `projects/erp-clinicas/` - ERP Clinicas
|
|
|
|
**Productos derivados (en erp-suite):**
|
|
- `projects/erp-suite/apps/products/erp-basico/` - ERP Simplificado
|
|
- `projects/erp-suite/apps/products/pos-micro/` - POS Miniatura
|
|
|
|
---
|
|
|
|
## Stack Tecnológico
|
|
|
|
### Backend (`/backend`)
|
|
| Tecnología | Versión | Propósito |
|
|
|------------|---------|-----------|
|
|
| Node.js | 20+ | Runtime |
|
|
| Express.js | 4.x | Framework HTTP |
|
|
| TypeScript | 5.3+ | Lenguaje |
|
|
| TypeORM | 0.3.17 | ORM |
|
|
| JWT + bcryptjs | - | Autenticación |
|
|
| Zod, class-validator | - | Validación |
|
|
| Winston | - | Logger |
|
|
| Helmet, CORS | - | Seguridad HTTP |
|
|
|
|
### Frontend (`/frontend`)
|
|
| Tecnología | Versión | Propósito |
|
|
|------------|---------|-----------|
|
|
| React | 18 | Framework UI |
|
|
| Vite | 5.x | Build tool |
|
|
| TypeScript | 5.3+ | Lenguaje |
|
|
| Zustand | - | State management |
|
|
| Tailwind CSS | 4.x | Styling |
|
|
|
|
### Base de Datos (`/database`)
|
|
| Tecnología | Versión | Propósito |
|
|
|------------|---------|-----------|
|
|
| PostgreSQL | 15+ | Motor BD |
|
|
| RLS | - | Row-Level Security |
|
|
| uuid-ossp | - | Generación UUIDs |
|
|
| pg_trgm | - | Búsqueda fuzzy |
|
|
|
|
---
|
|
|
|
## Paths del Proyecto
|
|
|
|
```
|
|
/home/isem/workspace-v1/projects/erp-core/
|
|
├── backend/
|
|
│ ├── src/
|
|
│ │ ├── modules/ # Módulos de negocio (auth, users, etc.)
|
|
│ │ ├── shared/ # Código compartido (utils, types, constants)
|
|
│ │ ├── config/ # Configuración (database, jwt, cors)
|
|
│ │ └── middleware/ # Middlewares (auth, validation, error)
|
|
│ ├── package.json
|
|
│ ├── tsconfig.json
|
|
│ └── .env.example
|
|
│
|
|
├── frontend/
|
|
│ ├── src/
|
|
│ │ ├── components/ # Componentes reutilizables
|
|
│ │ ├── pages/ # Páginas/Vistas
|
|
│ │ ├── stores/ # Estado global (Zustand)
|
|
│ │ ├── services/ # API clients
|
|
│ │ └── hooks/ # Custom hooks
|
|
│ ├── package.json
|
|
│ └── vite.config.ts
|
|
│
|
|
├── database/
|
|
│ ├── ddl/ # CREATE TABLE statements
|
|
│ ├── migrations/ # Migraciones incrementales
|
|
│ ├── seeds/ # Datos iniciales (idempotentes)
|
|
│ └── scripts/ # Scripts de utilidad
|
|
│
|
|
├── docs/ # 517 archivos de documentación
|
|
│ ├── 00-vision-general/
|
|
│ ├── 00-analisis-referencias/
|
|
│ ├── 01-definicion-modulos/
|
|
│ ├── 02-modelado/
|
|
│ │ ├── database-design/
|
|
│ │ ├── domain-models/
|
|
│ │ └── especificaciones-tecnicas/
|
|
│ ├── 03-user-stories/ # 15 módulos MGN-*
|
|
│ ├── 90-transversal/
|
|
│ ├── 95-guias-desarrollo/
|
|
│ └── 97-adr/
|
|
│
|
|
└── orchestration/ # Sistema NEXUS
|
|
├── 00-guidelines/
|
|
│ ├── CONTEXTO-PROYECTO.md # Este archivo
|
|
│ └── HERENCIA-DIRECTIVAS.md # Mapeo de directivas
|
|
├── 01-analisis/ # Análisis de tareas
|
|
├── 02-planeacion/ # Planes detallados
|
|
├── 03-tareas/ # Descomposición de work
|
|
├── 04-ejecucion-logs/ # Logs de ejecución
|
|
├── 05-validaciones/ # Validaciones (pre/durante/post)
|
|
│ ├── pre/
|
|
│ ├── durante/
|
|
│ └── post/
|
|
├── 06-subagentes/ # Gestión de subagentes
|
|
├── agentes/ # Ejecuciones por agente
|
|
├── directivas/ # Directivas específicas
|
|
├── estados/ # Estado actual de agentes
|
|
├── inventarios/ # Inventarios YAML
|
|
├── prompts/ # Prompts específicos
|
|
├── reportes/ # Reportes de ciclos
|
|
├── trazas/ # Historial de tareas
|
|
├── templates/ # Templates proyecto
|
|
└── PROXIMA-ACCION.md # Siguiente tarea
|
|
```
|
|
|
|
---
|
|
|
|
## Módulos Core (MGN-*)
|
|
|
|
Referencia: `/docs/03-user-stories/`
|
|
|
|
| Código | Módulo | Estado | Descripción |
|
|
|--------|--------|--------|-------------|
|
|
| MGN-001 | auth | En desarrollo | Autenticación JWT, OAuth, sessions |
|
|
| MGN-002 | users | En desarrollo | Gestión de usuarios CRUD |
|
|
| MGN-003 | roles | Planificado | Roles y permisos (RBAC) |
|
|
| MGN-004 | tenants | Planificado | Multi-tenancy, aislamiento |
|
|
| MGN-005 | catalogs | Planificado | Catálogos maestros genéricos |
|
|
| MGN-006 | settings | Planificado | Configuración del sistema |
|
|
| MGN-007 | audit | Planificado | Auditoría y logs |
|
|
| MGN-008 | notifications | Planificado | Sistema de notificaciones |
|
|
| MGN-009 | reports | Planificado | Reportes genéricos |
|
|
| MGN-010 | financial | Planificado | Contabilidad básica |
|
|
| MGN-011 | inventory | Planificado | Inventario básico |
|
|
| MGN-012 | purchasing | Planificado | Compras básicas |
|
|
| MGN-013 | crm | Planificado | CRM básico |
|
|
| MGN-014 | integration | Planificado | APIs de integración |
|
|
|
|
---
|
|
|
|
## Convenciones de Código
|
|
|
|
### Base de Datos (DDL)
|
|
```
|
|
Schemas: core_{nombre} (ej: core_auth, core_users)
|
|
Tablas: {schema}.{nombre_plural} (ej: core_auth.users)
|
|
Columnas: snake_case (ej: created_at, user_id)
|
|
Índices: idx_{tabla}_{columnas} (ej: idx_users_email)
|
|
FK: fk_{origen}_to_{destino} (ej: fk_users_to_tenants)
|
|
Triggers: trg_{tabla}_{accion} (ej: trg_users_audit)
|
|
```
|
|
|
|
**Columnas de auditoría (obligatorias):**
|
|
- `id` UUID PRIMARY KEY
|
|
- `tenant_id` UUID NOT NULL (multi-tenant)
|
|
- `created_at` TIMESTAMPTZ DEFAULT NOW()
|
|
- `updated_at` TIMESTAMPTZ DEFAULT NOW()
|
|
- `created_by` UUID REFERENCES users(id)
|
|
- `updated_by` UUID REFERENCES users(id)
|
|
- `is_active` BOOLEAN DEFAULT TRUE
|
|
|
|
### Backend (TypeScript)
|
|
```
|
|
Archivos: kebab-case.tipo.ts (ej: user-auth.service.ts)
|
|
Clases: PascalCase + sufijo (ej: UserAuthService, UserEntity)
|
|
Variables: camelCase (ej: userId, isActive)
|
|
Constantes: UPPER_SNAKE_CASE (ej: MAX_LOGIN_ATTEMPTS)
|
|
Métodos: camelCase + verbo (ej: findById, createUser)
|
|
Interfaces: IPascalCase (ej: IUserService)
|
|
Types: TPascalCase (ej: TUserRole)
|
|
```
|
|
|
|
**Estructura de módulo:**
|
|
```
|
|
modules/{nombre}/
|
|
├── {nombre}.module.ts
|
|
├── {nombre}.controller.ts
|
|
├── {nombre}.service.ts
|
|
├── {nombre}.entity.ts
|
|
├── dto/
|
|
│ ├── create-{nombre}.dto.ts
|
|
│ └── update-{nombre}.dto.ts
|
|
└── __tests__/
|
|
└── {nombre}.service.spec.ts
|
|
```
|
|
|
|
### Frontend (React/TypeScript)
|
|
```
|
|
Componentes: PascalCase.tsx (ej: UserProfile.tsx)
|
|
Páginas: PascalCasePage.tsx (ej: DashboardPage.tsx)
|
|
Hooks: useCamelCase.ts (ej: useAuth.ts)
|
|
Stores: camelCase.store.ts (ej: auth.store.ts)
|
|
Services: camelCase.service.ts (ej: api.service.ts)
|
|
Types: camelCase.types.ts (ej: user.types.ts)
|
|
```
|
|
|
|
---
|
|
|
|
## Herencia de Directivas
|
|
|
|
**Ver detalle completo en:** `HERENCIA-DIRECTIVAS.md`
|
|
|
|
### Orden de Precedencia
|
|
1. **Globales (CORE):** `/home/isem/workspace-v1/core/orchestration/directivas/`
|
|
2. **ERP-Suite:** `/home/isem/workspace-v1/projects/erp-suite/orchestration/directivas/`
|
|
3. **ERP-Core:** `./directivas/`
|
|
|
|
### Directivas Críticas
|
|
- `DIRECTIVA-FLUJO-5-FASES.md` - Flujo de trabajo obligatorio
|
|
- `DIRECTIVA-VALIDACION-DOCUMENTACION.md` - Validar contra /docs/
|
|
- `POLITICAS-USO-AGENTES.md` - Uso de agentes NEXUS
|
|
- `DIRECTIVA-DISENO-BASE-DATOS.md` - Diseño de BD
|
|
|
|
---
|
|
|
|
## Principios Core (Obligatorios)
|
|
|
|
1. **Independencia:** Todo módulo debe ser independiente y desacoplado
|
|
2. **Extensibilidad:** Las verticales EXTIENDEN, nunca modifican el core
|
|
3. **Multi-tenant:** TODA consulta debe filtrar por `tenant_id`
|
|
4. **Documentación:** Documentar ANTES de implementar
|
|
5. **Trazabilidad:** Registrar TODA tarea en `/orchestration/trazas/`
|
|
6. **Validación:** Usar flujo de 5 fases para toda tarea
|
|
|
|
---
|
|
|
|
## Flujo de 5 Fases (Obligatorio)
|
|
|
|
Toda tarea debe seguir:
|
|
|
|
| Fase | Carpeta | Entregable |
|
|
|------|---------|------------|
|
|
| 1. Análisis | `01-analisis/` | ANÁLISIS.md |
|
|
| 2. Planeación | `02-planeacion/` | PLAN.md |
|
|
| 3. Validación | `05-validaciones/pre/` | VALIDACIÓN.md |
|
|
| 4. Ejecución | `04-ejecucion-logs/` | LOGS.md |
|
|
| 5. Cierre | `05-validaciones/post/` | CIERRE.md |
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
| Recurso | Path |
|
|
|---------|------|
|
|
| Directivas globales | `/home/isem/workspace-v1/core/orchestration/directivas/` |
|
|
| Prompts base | `/home/isem/workspace-v1/core/orchestration/prompts/base/` |
|
|
| Patrones Odoo | `/home/isem/workspace-v1/knowledge-base/patterns/` |
|
|
| Catálogo central | `shared/catalog/` *(componentes reutilizables)* |
|
|
| Estándar docs | `/home/isem/workspace-v1/core/standards/ESTANDAR-ESTRUCTURA-DOCUMENTACION.md` |
|
|
|
|
---
|
|
*Última actualización: Diciembre 2025*
|