# Database Seeds - OrbiQuant IA

## Estructura

```
seeds/
├── dev/                    # Seeds para desarrollo
│   ├── auth/
│   │   ├── 01-admin-user.sql     # Admin users (admin123)
│   │   └── 02-test-users.sql     # Test users (test1234)
│   ├── trading/
│   │   └── 01-symbols.sql        # Forex, Metals, Crypto symbols
│   ├── investment/
│   │   └── 01-products.sql       # PAMM products (Atlas, Orion, Nova)
│   ├── financial/
│   │   └── 01-subscription-config.sql  # Plan features & pricing
│   ├── education/                # (Future: demo courses)
│   └── ml/                       # (Future: model registry)
├── prod/                   # Seeds para producción
│   ├── trading/
│   │   └── 01-symbols.sql        # Same as dev
│   ├── investment/
│   │   └── 01-products.sql       # Same as dev
│   └── financial/
│       └── 01-subscription-config.sql
├── load-seeds.sh           # Script para cargar seeds
└── README.md               # Este archivo
```

## Uso

### Cargar seeds de desarrollo
```bash
cd apps/database/seeds
./load-seeds.sh dev
```

### Cargar seeds de producción
```bash
./load-seeds.sh prod
```

### Variables de entorno
```bash
export DB_HOST=localhost
export DB_PORT=5432
export DB_NAME=orbiquant_trading
export DB_USER=orbiquant_user
export DB_PASSWORD=your_password
./load-seeds.sh dev
```

## Seeds Disponibles

### Auth (solo dev)
| Archivo | Descripción | Password |
|---------|-------------|----------|
| 01-admin-user.sql | Admin users | `admin123` |
| 02-test-users.sql | Test users con diferentes roles | `test1234` |

**Usuarios creados:**
- `admin@orbiquant.io` (super_admin)
- `dev@orbiquant.io` (admin)
- `trader1@test.com`, `trader2@test.com` (trader)
- `analyst@test.com` (analyst)
- `user@test.com` (user)
- `unverified@test.com` (pending_verification)

### Trading
| Archivo | Descripción |
|---------|-------------|
| 01-symbols.sql | Símbolos de trading |

**Símbolos incluidos:**
- **Forex:** EURUSD, GBPUSD, USDJPY, USDCHF, AUDUSD, USDCAD, NZDUSD
- **Metals:** XAUUSD (Gold), XAGUSD (Silver)
- **Crypto:** BTCUSDT, ETHUSDT, SOLUSDT

### Investment
| Archivo | Descripción |
|---------|-------------|
| 01-products.sql | Productos PAMM |

**Productos:**
| Código | Agente | Min Investment | Target Mensual |
|--------|--------|----------------|----------------|
| PAMM-ATLAS | atlas | $200 | 3-5% |
| PAMM-ORION | orion | $500 | 5-10% |
| PAMM-NOVA | nova | $1,000 | 10-15% |

### Financial
| Archivo | Descripción |
|---------|-------------|
| 01-subscription-config.sql | Configuración de planes |

**Planes:**
| Plan | Precio/mes | Features principales |
|------|------------|---------------------|
| Free | $0 | Paper trading, 3 señales/día |
| Basic | $19 | Atlas agent, 10 señales/día |
| Pro | $49 | 3 agents, LLM copilot |
| Premium | $99 | API access, unlimited |
| Enterprise | Custom | White label, SLA |

## Notas Importantes

1. **Passwords de desarrollo** - Los passwords en seeds de dev son solo para testing. NUNCA usar en producción.

2. **Orden de ejecución** - El script `load-seeds.sh` ejecuta los seeds en orden:
   1. auth
   2. trading
   3. investment
   4. financial
   5. education
   6. ml

3. **Idempotencia** - Los seeds usan `ON CONFLICT DO UPDATE` o `DO NOTHING` para ser re-ejecutables.

4. **UUIDs fijos** - Se usan UUIDs predefinidos para facilitar referencias entre tablas y testing.

## Contribuir Seeds

Al agregar nuevos seeds:

1. Seguir nomenclatura: `NN-descripcion.sql`
2. Usar `ON CONFLICT` para idempotencia
3. Agregar comentarios descriptivos
4. Incluir `RAISE NOTICE` al final para logging
5. Actualizar este README

---

*Última actualización: 2025-12-12*
*Tech Leader Agent*
