168 lines
6.0 KiB
Markdown
168 lines
6.0 KiB
Markdown
# 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*
|