# Contexto del Proyecto: ERP Suite ## Metadatos | Campo | Valor | |-------|-------| | **Nombre** | ERP Suite - Productos Derivados | | **Tipo** | SUITE (contenedor de productos SaaS) | | **Nivel** | Productos derivados de erp-core | | **Estado** | En desarrollo | | **Version** | 1.0.0 | | **Fecha Reorganizacion** | 2025-12-27 | --- ## REORGANIZACION 2025-12-27 **IMPORTANTE:** La estructura de erp-suite fue reorganizada: | Componente | Antes | Ahora | |------------|-------|-------| | erp-core | `erp-suite/apps/erp-core/` | `projects/erp-core/` (independiente) | | verticales | `erp-suite/apps/verticales/` | `projects/erp-{vertical}/` (independientes) | | products | `erp-suite/apps/products/` | Se mantiene aqui | | saas | `erp-suite/apps/saas/` | Se mantiene aqui | --- ## Descripcion ERP Suite ahora es el contenedor de **productos derivados** del erp-core: - **products/erp-basico/** - ERP simplificado para PyMEs - **products/pos-micro/** - Punto de venta minimalista - **saas/billing/** - Infraestructura de facturacion de suscripciones - **saas/portal/** - Portal de clientes **Nota:** erp-core y las verticales son ahora proyectos independientes en projects/. ## Stack Tecnológico ### Backend (erp-core/backend) - **Runtime:** Node.js 20+ - **Framework:** Express.js - **Lenguaje:** TypeScript 5.3+ - **ORM:** TypeORM 0.3.17 - **Autenticación:** JWT + bcryptjs - **Validación:** Zod, class-validator, class-transformer - **Logger:** Winston - **HTTP Security:** Helmet, CORS, express-rate-limit - **Docs API:** Swagger/OpenAPI ### Frontend Web (erp-core/frontend) - **Framework:** React 18 - **Build Tool:** Vite - **Lenguaje:** TypeScript - **State Management:** Zustand - **Styling:** Tailwind CSS - **Validación:** Zod ### Base de Datos - **Motor:** PostgreSQL 15+ - **Extensiones:** uuid-ossp, postgis, pg_trgm, btree_gist - **Seguridad:** Row-Level Security (RLS) con multi-tenant - **Contexto:** `app.current_constructora_id` para aislamiento ### Frontend Mobile - **Framework:** React Native ## Paths Críticos ``` /home/isem/workspace-v1/projects/erp-suite/ ├── apps/ │ ├── erp-core/ │ │ ├── backend/src/ # Código backend principal │ │ ├── frontend/src/ # Código frontend principal │ │ └── database/ # DDL, migrations, seeds │ └── verticales/ │ └── construccion/ # Vertical más avanzado (35%) │ ├── backend/ │ ├── frontend/ │ └── database/ ├── docs/ │ ├── 00-overview/ # Documentación general │ ├── core/ # Docs del erp-core │ └── verticales/ │ └── construccion/ # 403+ archivos de especificaciones │ ├── 01-fase-alcance-inicial/ # 15 módulos MAI-* │ ├── 02-fase-enterprise/ # 3 épicas MAE-* │ └── 02-modelado/database-design/ # Schemas SQL └── orchestration/ ├── 00-guidelines/ # Este archivo └── legacy-reference/ # Sistema de orquestación migrado ``` ## Convenciones de Código ### Base de Datos - **Schemas:** `snake_case` + sufijo `_management` - **Tablas:** `snake_case` plural - **Columnas:** `snake_case` singular - **Índices:** `idx_{tabla}_{columnas}` - **Foreign Keys:** `fk_{origen}_to_{destino}` - **Auditoría:** `created_at`, `updated_at`, `created_by`, `updated_by` ### Backend - **Archivos:** `kebab-case.tipo.ts` (ej: `user-auth.service.ts`) - **Clases:** `PascalCase` + sufijo (Entity, Service, Controller, Dto) - **Variables:** `camelCase` - **Constantes:** `UPPER_SNAKE_CASE` - **Métodos:** `camelCase` + verbo al inicio ### Frontend - **Componentes:** `PascalCase.tsx` - **Páginas:** `PascalCasePage.tsx` - **Hooks:** `useCamelCase.ts` - **Stores:** `camelCase.store.ts` - **Tipos:** `camelCase.types.ts` ## Verticales y Estado | Vertical | Path | Estado | Prioridad | |----------|------|--------|-----------| | **erp-core** | `apps/erp-core/` | 60% | Alta | | **Construcción** | `apps/verticales/construccion/` | 35% | Alta | | **Vidrio Templado** | `apps/verticales/vidrio-templado/` | 0% | Media | | **Mecánicas Diesel** | `apps/verticales/mecanicas-diesel/` | 0% | Baja | | **Retail** | `apps/verticales/retail/` | 0% | Futura | | **Clínicas** | `apps/verticales/clinicas/` | 0% | Futura | ## Directivas Específicas 1. **Validación obligatoria:** Todo cambio debe validarse contra `/docs/verticales/construccion/` para evitar alucinaciones 2. **Herencia de directivas:** Este proyecto EXTIENDE las directivas de `/home/isem/workspace-v1/core/orchestration/directivas/` 3. **Multi-tenant:** Toda consulta debe filtrar por `constructora_id` usando RLS 4. **Modularidad:** Archivos <400 líneas, funciones <50 líneas 5. **Documentación:** Actualizar docs cuando se modifique código relacionado ## Schemas de Base de Datos | Schema | Descripción | Estado | |--------|-------------|--------| | `auth_management` | Autenticación, usuarios, roles | Definido | | `project_management` | Proyectos, desarrollos, fases | Definido | | `financial_management` | Presupuestos, estimaciones | Definido | | `purchasing_management` | Compras, proveedores | Definido | | `construction_management` | Avances, recursos | Definido | | `quality_management` | Inspecciones, calidad | Definido | | `infonavit_management` | Integración INFONAVIT | Definido | ## Referencias Clave - **Documentación Principal:** `/docs/verticales/construccion/` - **DDL Schemas:** `/docs/verticales/construccion/02-modelado/database-design/schemas/` - **RLS Policies:** `/docs/verticales/construccion/01-fase-alcance-inicial/*/implementacion/*-rls-policies.sql` - **Patrones Odoo:** `/home/isem/workspace-v1/knowledge-base/patterns/` - **Sistema Legacy:** `/orchestration/legacy-reference/` ## Próximos Pasos 1. Completar erp-core con módulos base (auth, usuarios, catálogos) 2. Implementar schemas de base de datos 3. Continuar desarrollo de vertical construcción 4. Documentar APIs con Swagger --- *Última actualización: Diciembre 2025*