Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
16 KiB
16 KiB
Plan de Implementacion - Mecanicas Diesel
Fecha: 2025-12-12 Version: 2.0.0 Estado: LISTO PARA DESARROLLO
Resumen Ejecutivo
Este documento presenta el plan actualizado de implementacion para el proyecto mecanicas-diesel, considerando el estado actual del proyecto erp-core y las especificaciones tecnicas disponibles.
Estado Actual
| Proyecto | Estado | Avance |
|---|---|---|
| erp-core | DDL completo, Backend parcial | 60% |
| mecanicas-diesel | Documentacion completa, DDL completo | Listo para desarrollo |
Decision Arquitectonica
mecanicas-diesel es un proyecto independiente que:
- NO depende de erp-core para ejecutarse
- Implementa sus propios schemas y tablas
- Adapta patrones similares a erp-core para su dominio especifico
- Opera de forma completamente standalone
Analisis de erp-core (Diciembre 2025)
Estructura de erp-core
erp-core/
├── backend/ # 15 modulos implementados (104 archivos TS)
│ └── src/modules/
│ ├── auth/ # JWT, API Keys, sessions
│ ├── users/ # CRUD usuarios
│ ├── companies/ # Empresas multi-tenant
│ ├── partners/ # Clientes, proveedores
│ ├── inventory/ # Productos, stock
│ ├── financial/ # Contabilidad
│ ├── purchases/ # Ordenes de compra
│ ├── sales/ # Ordenes de venta
│ └── ...
│
├── frontend/ # 3 features completas (React + Vite)
│ └── src/features/
│ ├── companies/
│ ├── users/
│ └── partners/
│
├── database/ddl/ # 15 archivos SQL (~10,000 lineas)
│ ├── 00-prerequisites.sql # Extensions
│ ├── 01-auth.sql # Autenticacion
│ ├── 01-auth-extensions.sql # Extensiones auth
│ ├── 02-core.sql # Partners, catalogos
│ ├── 03-analytics.sql # Contabilidad analitica
│ ├── 04-financial.sql # Contabilidad financiera
│ ├── 05-inventory.sql # Inventario
│ ├── 06-purchase.sql # Compras
│ ├── 07-sales.sql # Ventas
│ ├── 08-projects.sql # Proyectos
│ ├── 09-system.sql # Sistema, mensajes
│ ├── 10-billing.sql # SaaS billing
│ ├── 11-crm.sql # CRM
│ └── 12-hr.sql # RRHH
│
└── docs/ # 829 archivos Markdown
└── 04-modelado/especificaciones-tecnicas/transversal/
└── 30 especificaciones tecnicas
Modulos de erp-core (19 totales)
| Fase | Modulos | Estado |
|---|---|---|
| P0 Foundation | MGN-001 Auth, MGN-002 Users, MGN-003 Roles, MGN-004 Tenants | En desarrollo |
| P1 Core Business | MGN-005 Catalogs, MGN-010 Financial, MGN-011 Inventory, MGN-012 Purchasing, MGN-013 Sales, MGN-006 Settings | Planificado |
| P2 Extended | MGN-007 Audit, MGN-008 Notifications, MGN-009 Reports, MGN-014 CRM, MGN-015 Projects | Planificado |
| P3 SaaS | MGN-016 Billing, MGN-017 Payments, MGN-018 WhatsApp, MGN-019 AI Agents | Planificado |
Especificaciones Transversales Disponibles (30)
erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/
├── SPEC-ALERTAS-PRESUPUESTO.md
├── SPEC-BLANKET-ORDERS.md
├── SPEC-CONCILIACION-BANCARIA.md
├── SPEC-CONSOLIDACION-FINANCIERA.md
├── SPEC-CONTABILIDAD-ANALITICA-MULTIDIMENSIONAL.md
├── SPEC-FIRMA-ELECTRONICA-NOM151.md
├── SPEC-GASTOS-EMPLEADOS.md
├── SPEC-IMPUESTOS-AVANZADOS.md
├── SPEC-INTEGRACION-CALENDAR.md
├── SPEC-INVENTARIOS-CICLICOS.md
├── SPEC-LOCALIZACION-PAISES.md
├── SPEC-MAIL-THREAD-TRACKING.md
├── SPEC-NOMINA-BASICA.md
├── SPEC-OAUTH2-SOCIAL-LOGIN.md
├── SPEC-PLANTILLAS-CUENTAS.md
├── SPEC-PORTAL-PROVEEDORES.md
├── SPEC-PRESUPUESTOS-REVISIONES.md
├── SPEC-PRICING-RULES.md
├── SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN.md
├── SPEC-REPORTES-FINANCIEROS.md
├── SPEC-RRHH-EVALUACIONES-SKILLS.md
├── SPEC-SCHEDULER-REPORTES.md
├── SPEC-SEGURIDAD-API-KEYS-PERMISOS.md
├── SPEC-SISTEMA-SECUENCIAS.md
├── SPEC-TAREAS-RECURRENTES.md
├── SPEC-TASAS-CAMBIO-AUTOMATICAS.md
├── SPEC-TRAZABILIDAD-LOTES-SERIES.md
├── SPEC-TWO-FACTOR-AUTHENTICATION.md
├── SPEC-VALORACION-INVENTARIO.md
└── SPEC-WIZARD-TRANSIENT-MODEL.md
Estado Actual de mecanicas-diesel
DDL Implementados (11 archivos)
mecanicas-diesel/database/init/
├── 00-extensions.sql # Extensiones PostgreSQL
├── 01-create-schemas.sql # 7 schemas propios
├── 02-rls-functions.sql # Multi-tenant RLS
├── 03-service-management-tables.sql # Ordenes, diagnosticos
├── 04-parts-management-tables.sql # Inventario refacciones
├── 05-vehicle-management-tables.sql # Vehiculos, flotas
├── 06-seed-data.sql # Datos iniciales
├── 07-notifications-schema.sql # Tracking, followers, actividades
├── 08-analytics-schema.sql # Contabilidad analitica
├── 09-purchasing-schema.sql # Compras, proveedores
├── 10-warranty-claims.sql # Garantias
└── 11-quote-signature.sql # Firma electronica
Schemas de mecanicas-diesel (7)
| Schema | Tablas | Equivalente Core |
|---|---|---|
| workshop_core | 9 | auth + core |
| service_management | 14+ | sales + projects |
| parts_management | 12+ | inventory |
| vehicle_management | 8 | (especifico) |
| notifications | 6 | system (messages) |
| analytics | 4 | analytics |
| purchasing | 5 | purchase |
Modulos Documentados (6 MVP)
| Codigo | Modulo | User Stories | Story Points |
|---|---|---|---|
| MMD-001 | Fundamentos | 9 | 42 |
| MMD-002 | Ordenes de Servicio | 11 | 55 |
| MMD-003 | Diagnosticos | 8 | 42 |
| MMD-004 | Inventario | 10 | 42 |
| MMD-005 | Vehiculos | 8 | 34 |
| MMD-006 | Cotizaciones | 7 | 26 |
| Total | 6 modulos | 55 US | 241 SP |
Mapeo: mecanicas-diesel → erp-core
Equivalencia de Funcionalidades
| Funcionalidad mecanicas-diesel | erp-core Equivalente | Spec Aplicable |
|---|---|---|
| Multi-tenant (taller = tenant) | MGN-004 Tenants | - |
| Autenticacion JWT | MGN-001 Auth | SPEC-TWO-FACTOR-AUTHENTICATION |
| Usuarios y roles | MGN-002/003 Users/Roles | SPEC-SEGURIDAD-API-KEYS-PERMISOS |
| Catalogos (servicios, partes) | MGN-005 Catalogs | - |
| Inventario de refacciones | MGN-011 Inventory | SPEC-VALORACION-INVENTARIO, SPEC-TRAZABILIDAD-LOTES-SERIES |
| Ordenes de compra | MGN-012 Purchasing | SPEC-BLANKET-ORDERS |
| Cotizaciones | MGN-013 Sales | SPEC-PRICING-RULES |
| Sistema de tracking | MGN-008 Notifications | SPEC-MAIL-THREAD-TRACKING |
| Contabilidad analitica | financialanalytics | SPEC-CONTABILIDAD-ANALITICA-MULTIDIMENSIONAL |
| Firma electronica | - | SPEC-FIRMA-ELECTRONICA-NOM151 |
| Garantias | (especifico) | - |
| Vehiculos/flotas | (especifico) | - |
| Diagnosticos diesel | (especifico) | - |
Specs de erp-core Aplicables a mecanicas-diesel
| Spec | Aplicabilidad | Implementado en MMD |
|---|---|---|
| SPEC-MAIL-THREAD-TRACKING | Alta | Si - 07-notifications |
| SPEC-CONTABILIDAD-ANALITICA | Alta | Si - 08-analytics |
| SPEC-VALORACION-INVENTARIO | Alta | Parcial |
| SPEC-TRAZABILIDAD-LOTES-SERIES | Media | No |
| SPEC-PRICING-RULES | Media | No |
| SPEC-FIRMA-ELECTRONICA-NOM151 | Media | Basico - 11-quote-signature |
| SPEC-SISTEMA-SECUENCIAS | Alta | No (usar directamente) |
| SPEC-SEGURIDAD-API-KEYS | Alta | No (usar directamente) |
| SPEC-TWO-FACTOR-AUTHENTICATION | Baja | No (Fase 2) |
Plan de Desarrollo
Fase 1: Backend Foundation (Semanas 1-2)
Objetivo: Implementar APIs core basadas en patrones de erp-core
Sprint 1.1: Auth y Usuarios
Tareas:
1. Configurar proyecto NestJS
- Estructura de modulos
- Configuracion de DB
- Middleware de autenticacion
2. Implementar modulo Auth (basado en erp-core/backend/src/modules/auth/)
- Login/Register endpoints
- JWT tokens (access + refresh)
- Password hashing con bcrypt
3. Implementar modulo Users
- CRUD de usuarios
- Roles por defecto (admin, jefe_taller, mecanico, recepcion)
4. Implementar RLS middleware
- Inyeccion de tenant_id
- Validacion de permisos
Entregables:
- [ ] POST /api/auth/login
- [ ] POST /api/auth/register
- [ ] POST /api/auth/refresh
- [ ] GET /api/users
- [ ] GET /api/users/:id
- [ ] POST /api/users
- [ ] PUT /api/users/:id
- [ ] DELETE /api/users/:id
Sprint 1.2: Catalogos y Configuracion
Tareas:
1. Implementar modulo workshop_core
- Talleres (tenants)
- Clientes
- Servicios
- Bahias de trabajo
2. Implementar sistema de secuencias (SPEC-SISTEMA-SECUENCIAS)
- Folios de ordenes
- Folios de cotizaciones
Entregables:
- [ ] CRUD Talleres
- [ ] CRUD Clientes
- [ ] CRUD Servicios
- [ ] CRUD Bahias
- [ ] Sistema de folios automaticos
Fase 2: Modulos de Negocio (Semanas 3-5)
Sprint 2.1: Ordenes de Servicio (MMD-002)
Tareas:
1. CRUD de ordenes de servicio
2. Estados y transiciones (maquina de estados)
3. Asignacion a mecanicos y bahias
4. Integracion con sistema de tracking (notifications schema)
Entregables:
- [ ] POST /api/service-orders
- [ ] GET /api/service-orders
- [ ] PUT /api/service-orders/:id/status
- [ ] POST /api/service-orders/:id/assign
- [ ] GET /api/service-orders/:id/history (tracking)
Sprint 2.2: Diagnosticos (MMD-003)
Tareas:
1. CRUD de diagnosticos
2. Tipos de prueba configurables
3. Asociacion con ordenes de servicio
4. Upload de fotos de evidencia
Entregables:
- [ ] POST /api/diagnostics
- [ ] GET /api/diagnostics/:id
- [ ] POST /api/diagnostics/:id/tests
- [ ] POST /api/diagnostics/:id/photos
Sprint 2.3: Inventario (MMD-004)
Tareas:
1. CRUD de refacciones
2. Movimientos de stock (siguiendo SPEC-VALORACION-INVENTARIO)
3. Solicitudes desde ordenes de servicio
4. Alertas de stock minimo
Entregables:
- [ ] CRUD /api/parts
- [ ] POST /api/stock-moves
- [ ] GET /api/stock-levels
- [ ] POST /api/part-requests
Fase 3: Cotizaciones y Compras (Semanas 6-7)
Sprint 3.1: Cotizaciones (MMD-006)
Tareas:
1. CRUD de cotizaciones
2. Generacion desde diagnosticos
3. Aprobacion con firma electronica (basico)
4. Conversion a orden de servicio
Entregables:
- [ ] POST /api/quotes
- [ ] GET /api/quotes/:id
- [ ] POST /api/quotes/:id/sign
- [ ] POST /api/quotes/:id/convert
Sprint 3.2: Compras (purchasing schema)
Tareas:
1. CRUD de proveedores
2. Ordenes de compra
3. Recepciones de mercancia
4. Integracion con inventario
Entregables:
- [ ] CRUD /api/suppliers
- [ ] CRUD /api/purchase-orders
- [ ] POST /api/purchase-receipts
Fase 4: Frontend (Semanas 8-10)
Sprint 4.1: Setup y Layout
Tareas:
1. Configurar proyecto React + Vite
2. Implementar layout principal
3. Sistema de rutas
4. Autenticacion frontend
Estructura (basada en erp-core/frontend):
src/
├── features/
│ ├── auth/
│ ├── service-orders/
│ ├── diagnostics/
│ ├── inventory/
│ └── quotes/
├── components/
├── hooks/
├── stores/
└── services/
Sprint 4.2: Modulos Core
Entregables:
- [ ] Login/Dashboard
- [ ] Lista de ordenes (Kanban)
- [ ] Formulario de orden
- [ ] Vista de diagnostico
- [ ] Gestion de inventario
Patrones de erp-core a Reutilizar
1. Estructura de Modulo Backend
// Patron de erp-core/backend/src/modules/{module}/
{module}/
├── {module}.controller.ts // Endpoints
├── {module}.service.ts // Logica de negocio
├── {module}.routes.ts // Definicion de rutas
├── {module}.dto.ts // Data Transfer Objects (Zod)
└── index.ts // Exports
2. BaseService Pattern
// Reutilizar de erp-core/backend/src/shared/services/base.service.ts
abstract class BaseService<T> {
constructor(protected tableName: string) {}
async findAll(tenantId: string, filters?: any): Promise<T[]>
async findById(tenantId: string, id: string): Promise<T | null>
async create(tenantId: string, data: Partial<T>): Promise<T>
async update(tenantId: string, id: string, data: Partial<T>): Promise<T>
async delete(tenantId: string, id: string): Promise<boolean>
}
3. Auth Middleware
// Reutilizar patron de erp-core/backend/src/shared/middleware/auth.middleware.ts
export const authMiddleware = async (req, res, next) => {
const token = req.headers.authorization?.split(' ')[1];
const payload = verifyJWT(token);
req.user = payload;
req.tenantId = payload.tenantId;
next();
};
4. Feature Frontend Pattern
// Patron de erp-core/frontend/src/features/{feature}/
{feature}/
├── api/{feature}.api.ts // Llamadas HTTP
├── types/{feature}.types.ts // Interfaces
├── hooks/use{Feature}.ts // Custom hooks
└── components/
├── {Feature}Form.tsx
├── {Feature}List.tsx
└── {Feature}FiltersPanel.tsx
Configuracion de Entorno
Variables de Entorno (.env)
# Server
NODE_ENV=development
PORT=3021 # Puerto asignado por DEVENV
API_PREFIX=/api/v1
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mecanicas_diesel_db # Base de datos propia
DB_USER=mecanicas_user
DB_PASSWORD=mecanicas_secret_2024
# JWT
JWT_SECRET=mmd-super-secret-jwt-key-change-in-production
JWT_EXPIRES_IN=24h
JWT_REFRESH_EXPIRES_IN=7d
# Logging
LOG_LEVEL=debug
# CORS
CORS_ORIGIN=http://localhost:3020
Puertos (Consultar con DEVENV)
| Servicio | Puerto Sugerido | Descripcion |
|---|---|---|
| Backend API | 3021 | APIs REST NestJS |
| Frontend | 3020 | React + Vite |
| PostgreSQL | 5432 | Compartido (DB propia) |
IMPORTANTE: Antes de confirmar puertos, consultar con perfil DEVENV para evitar conflictos.
Entregables por Sprint
Sprint 1 (Semanas 1-2)
- Proyecto NestJS configurado
- Modulo Auth funcional
- Modulo Users funcional
- RLS implementado
- Tests unitarios auth
Sprint 2 (Semanas 3-4)
- Modulo ServiceOrders
- Modulo Diagnostics
- Sistema de tracking
- Tests de integracion
Sprint 3 (Semanas 5-6)
- Modulo Inventory
- Modulo Quotes
- Firma basica
- Tests E2E
Sprint 4 (Semanas 7-8)
- Modulo Purchasing
- Integracion completa
- Documentacion API (Swagger)
Sprint 5 (Semanas 9-10)
- Frontend React
- Vistas principales
- Integracion backend
- Deploy staging
Metricas de Exito
| Metrica | Objetivo |
|---|---|
| Cobertura de tests | >70% |
| Endpoints documentados | 100% |
| User Stories implementadas | 55/55 |
| Tiempo de respuesta API | <200ms |
| Build sin errores | 100% |
Riesgos y Mitigaciones
| Riesgo | Probabilidad | Impacto | Mitigacion |
|---|---|---|---|
| Complejidad de ordenes de servicio | Media | Alto | Empezar con flujo simplificado |
| Integracion con tracking | Baja | Medio | DDL ya probado |
| Firma electronica avanzada | Media | Bajo | Implementar basico primero |
| Performance inventario | Baja | Medio | Indices optimizados en DDL |
Referencias
| Documento | Ubicacion |
|---|---|
| DDL mecanicas-diesel | database/init/*.sql |
| Specs transversales | erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/ |
| Backend patterns | erp-core/backend/src/ |
| Frontend patterns | erp-core/frontend/src/ |
| User Stories | docs/02-definicion-modulos/*/historias-usuario/ |
| Epicas | docs/08-epicas/ |
Documento creado por: Architecture-Analyst Fecha: 2025-12-12 Version: 2.0.0 Para uso de: TECH-LEADER