# PROMPT BACKEND-AGENT - EXTENSIÓN ERP-SUITE

**Versión:** 1.0.0
**Fecha:** 2025-12-05
**Tipo:** Extensión de prompt global
**Proyecto:** ERP Suite - Sistema ERP Multi-Vertical

---

## HERENCIA

```yaml
EXTIENDE: core/orchestration/agents/PROMPT-BACKEND-AGENT.md
CONTEXTO: orchestration/00-guidelines/CONTEXTO-PROYECTO.md
```

**IMPORTANTE:** Este archivo NO duplica el prompt global. Solo contiene:
1. Resolución de variables para ERP-Suite
2. Extensiones específicas del proyecto (si las hay)

---

## RESOLUCIÓN DE VARIABLES PARA ERP-SUITE

Al leer el prompt global, resolver estos placeholders:

```yaml
{PROJECT_NAME}:    ERP-Suite
{BACKEND_ROOT}:    apps/erp-core/backend
{BACKEND_SRC}:     apps/erp-core/backend/src
{BACKEND_TESTS}:   apps/erp-core/backend/tests
{DB_NAME}:         erp_platform
{AUTH_SCHEMA}:     auth_management
{FRONTEND_ROOT}:   apps/erp-core/frontend
{DB_DDL_PATH}:     apps/erp-core/database/ddl
```

---

## ARQUITECTURA MULTI-VERTICAL

### Backend Core (Express.js)
| Módulo | Propósito |
|--------|-----------|
| `auth` | Autenticación JWT |
| `users` | Gestión de usuarios |
| `catalogs` | Catálogos compartidos |
| `audit` | Auditoría |

### Backend Vertical Construcción
| Módulo | Path | Propósito |
|--------|------|-----------|
| `projects` | `apps/verticales/construccion/backend/` | Proyectos y desarrollos |
| `financial` | `apps/verticales/construccion/backend/` | Presupuestos |
| `purchasing` | `apps/verticales/construccion/backend/` | Compras |
| `quality` | `apps/verticales/construccion/backend/` | Inspecciones |

---

## RUTAS DE TRABAJO

### Core
```bash
apps/erp-core/backend/src/modules/{modulo}/
apps/erp-core/backend/src/shared/
```

### Vertical Construcción
```bash
apps/verticales/construccion/backend/src/modules/{modulo}/
```

---

## EXTENSIONES ESPECÍFICAS

### Stack Express.js (no NestJS)

ERP-Suite usa **Express.js** en lugar de NestJS:

```typescript
// Estructura típica de módulo
src/modules/{modulo}/
├── {modulo}.routes.ts      // Router Express
├── {modulo}.controller.ts  // Handler de requests
├── {modulo}.service.ts     // Lógica de negocio
├── {modulo}.entity.ts      // TypeORM Entity
└── dto/
    ├── create-{modulo}.dto.ts
    └── update-{modulo}.dto.ts
```

### Multi-tenant Middleware

```typescript
// Middleware de tenant
export const tenantMiddleware = (req, res, next) => {
    const constructoraId = req.user?.constructoraId;
    if (constructoraId) {
        // Set PostgreSQL context
        await pool.query(`SET app.current_constructora_id = $1`, [constructoraId]);
    }
    next();
};
```

### Validación con Zod

```typescript
// ERP-Suite usa Zod para validación
import { z } from 'zod';

export const CreateProjectSchema = z.object({
    code: z.string().min(1).max(50),
    name: z.string().min(1).max(200),
    // ...
});
```

---

## FLUJO DE INICIO

Cuando el usuario diga "lee el prompt de Backend Agent para ERP-Suite":

1. **Leer prompt global:** `core/orchestration/agents/PROMPT-BACKEND-AGENT.md`
2. **Leer este archivo:** Para resolver variables y ver extensiones
3. **Leer contexto:** `orchestration/00-guidelines/CONTEXTO-PROYECTO.md`
4. **Listo para recibir tarea**

---

**Nota:** Cualquier mejora a las directivas generales se hace en `core/orchestration/agents/PROMPT-BACKEND-AGENT.md` y se refleja automáticamente en todos los proyectos.
