# DevTools - Herramientas de Desarrollo

Development tools, configurations, and scripts for the ISEM workspace.

## Estructura

```
devtools/
├── configs/                    # Shared configurations
│   ├── eslint.config.base.js   # ESLint base configuration
│   ├── prettier.config.js      # Prettier configuration
│   ├── tsconfig.base.json      # TypeScript base configuration
│   └── jest.config.base.js     # Jest base configuration
├── docker/                     # Docker utilities
│   └── postgres-init/          # PostgreSQL initialization scripts
├── scripts/                    # Development scripts
│   ├── dev.sh                  # Main development helper
│   ├── bootstrap-project.sh    # Crear nuevo proyecto
│   └── validate-structure.sh   # Validar estructura
└── templates/                  # Project templates
```

## Scripts Disponibles

### dev.sh - Script principal de desarrollo

```bash
# Ver comandos disponibles
./scripts/dev.sh help

# Ver estado del workspace
./scripts/dev.sh status

# Iniciar servicios Docker
./scripts/dev.sh docker-up

# Iniciar un proyecto
./scripts/dev.sh start gamilit
./scripts/dev.sh start trading
./scripts/dev.sh start mecanicas

# Instalar dependencias
./scripts/dev.sh install

# Ver puertos asignados
./scripts/dev.sh ports

# Lint de proyectos
./scripts/dev.sh lint gamilit
```

### bootstrap-project.sh

Crea un nuevo proyecto con estructura estándar.

```bash
# Uso
./scripts/bootstrap-project.sh <nombre> [tipo]

# Tipos disponibles
# - saas (default)
# - erp-vertical
# - analytics
# - edtech

# Ejemplos
./scripts/bootstrap-project.sh mi-proyecto
./scripts/bootstrap-project.sh erp-retail erp-vertical
./scripts/bootstrap-project.sh trading-bot analytics
```

### validate-structure.sh

Valida la estructura del workspace y/o proyectos.

```bash
# Validar todo el workspace
./scripts/validate-structure.sh

# Validar un proyecto específico
./scripts/validate-structure.sh gamilit
```

## Templates

### project-template/

Template base para nuevos proyectos. Contiene:
- Estructura de directorios estándar
- Archivos README.md predefinidos
- Configuración de orchestration

### customer-template/

Template para implementaciones de clientes. Contiene:
- Estructura de configuración
- Archivos de personalización
- Documentación del cliente

## Configuraciones Compartidas

### ESLint (eslint.config.js)
```javascript
import baseConfig from '../../../devtools/configs/eslint.config.base.js';
export default [...baseConfig];
```

### Prettier (.prettierrc.js)
```javascript
module.exports = require('../../../devtools/configs/prettier.config.js');
```

### TypeScript (tsconfig.json)
```json
{
  "extends": "../../../devtools/configs/tsconfig.base.json",
  "compilerOptions": { "outDir": "./dist", "rootDir": "./src" }
}
```

## Docker

Docker Compose principal en la raíz del workspace (`/docker-compose.yml`):

```bash
# Levantar todos los servicios
docker-compose up -d

# Ver logs
docker-compose logs -f

# Detener servicios
docker-compose down
```

Servicios incluidos:
- **PostgreSQL 15** - Base de datos principal (multi-database)
- **TimescaleDB** - Series temporales para Trading Platform
- **Redis 7** - Cache y sesiones
- **MinIO** - Almacenamiento S3-compatible
- **Mailhog** - Testing de emails
- **Adminer** - UI de administración de BD

## Asignación de Puertos

| Proyecto | Servicio | Puerto |
|----------|----------|--------|
| Gamilit | Backend | 3000 |
| Gamilit | Frontend | 5173 |
| Trading | Backend | 3001 |
| Trading | Frontend | 5174 |
| Trading | Data Service | 8001 |
| ERP Core | Backend | 3010 |
| Mecánicas | Backend | 3011 |
| Shared | PostgreSQL | 5432 |
| Shared | TimescaleDB | 5433 |
| Shared | Redis | 6379 |

---
*DevTools del Workspace ISEM*
