# Dependencias para TypeORM + Redis

## Instrucciones de instalación

Ejecutar los siguientes comandos para agregar las dependencias necesarias:

```bash
cd /home/adrian/Documentos/workspace/projects/erp-suite/apps/erp-core/backend

# Dependencias de producción
npm install typeorm reflect-metadata ioredis

# Dependencias de desarrollo
npm install --save-dev @types/ioredis
```

## Detalle de dependencias

### Producción (dependencies)

1. **typeorm** (^0.3.x)
   - ORM para TypeScript/JavaScript
   - Permite trabajar con entities, repositories y query builders
   - Soporta migraciones y subscribers

2. **reflect-metadata** (^0.2.x)
   - Requerido por TypeORM para decoradores
   - Debe importarse al inicio de la aplicación

3. **ioredis** (^5.x)
   - Cliente Redis moderno para Node.js
   - Usado para blacklist de tokens JWT
   - Soporta clustering, pipelines y Lua scripts

### Desarrollo (devDependencies)

1. **@types/ioredis** (^5.x)
   - Tipos TypeScript para ioredis
   - Provee autocompletado e intellisense

## Verificación post-instalación

Después de instalar las dependencias, verificar que el proyecto compile:

```bash
npm run build
```

Y que el servidor arranque correctamente:

```bash
npm run dev
```

## Variables de entorno necesarias

Agregar al archivo `.env`:

```bash
# Redis (opcional - para blacklist de tokens)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
```

## Archivos creados

1. `/src/config/typeorm.ts` - Configuración de TypeORM DataSource
2. `/src/config/redis.ts` - Configuración de cliente Redis
3. `/src/index.ts` - Modificado para inicializar TypeORM y Redis

## Próximos pasos

1. Instalar las dependencias listadas arriba
2. Configurar variables de entorno de Redis en `.env`
3. Arrancar servidor con `npm run dev` y verificar logs
4. Comenzar a crear entities gradualmente en `src/modules/*/entities/`
5. Actualizar `typeorm.ts` para incluir las rutas de las entities creadas
