# Configuración en Windows + XAMPP

## Requisitos

- **Windows 10/11** (64-bit)
- **XAMPP** con MySQL corriendo en puerto 3306
- **Node.js 22 LTS** ([descargar](https://nodejs.org/))
- **Conexión a internet** (para instalar Playwright)

---

## Instalación Inicial

### 1. Clonar/descargar el proyecto

```powershell
# Si tienes git:
git clone <repo-url> C:\xampp\htdocs\captajaus\lliria-properties-scraper
cd C:\xampp\htdocs\captajaus\lliria-properties-scraper

# O descomprimir el ZIP en esa ruta
```

### 2. Instalar dependencias

```powershell
npm install
```

### 3. Instalar navegador Playwright

```powershell
npx playwright install chromium
```

### 4. Configurar variables de entorno

Crea el fichero `.env` en la raíz del proyecto:

```env
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=lliria_properties
SESSION_SECRET=cambia-esto-por-algo-secreto
PORT=3000
```

> Si XAMPP tiene contraseña para root, ponla en `DB_PASSWORD`.

### 5. Inicializar la base de datos

Con XAMPP **MySQL corriendo**:

```powershell
npx ts-node src/config/initDb.ts
```

Esto crea la base de datos, tablas, zonas y los 20 portales.

### 6. Compilar TypeScript

```powershell
npx tsc
```

### 7. Iniciar con PM2

```powershell
# Instalar PM2 globalmente si no está instalado
npm install -g pm2

# Arrancar el servidor
pm2 start ecosystem.config.js

# Ver estado
pm2 status

# Ver logs en tiempo real
pm2 logs lliria-properties
```

### 8. Configurar arranque automático con Windows

```powershell
npm install -g pm2-windows-startup
pm2-windows-startup install
pm2 save --force
```

Esto hace que PM2 y el servidor arranquen automáticamente cuando se inicie Windows.

---

## Script de Instalación Automática

También puedes usar el script incluido:

```powershell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.\setup-and-start.ps1
```

Este script hace todo lo anterior de forma automática.

---

## Acceso a la Aplicación

Una vez arrancado, abre el navegador en:

```
http://localhost:3000
```

- **Usuario:** `george`
- **Contraseña:** `4213`

---

## Comandos Útiles PM2

```powershell
pm2 status                    # Ver estado del proceso
pm2 logs lliria-properties    # Ver logs en tiempo real
pm2 restart lliria-properties # Reiniciar (tras actualizar código)
pm2 stop lliria-properties    # Parar el servidor
pm2 delete lliria-properties  # Eliminar de PM2
pm2 save --force              # Guardar estado actual
```

---

## Actualizar el Código

Cuando se hagan cambios en los archivos TypeScript:

```powershell
cd C:\xampp\htdocs\captajaus\lliria-properties-scraper
npx tsc
pm2 restart lliria-properties
pm2 save --force
```

---

## Solución de Problemas

### La app no arranca — error de MySQL
Verifica que XAMPP MySQL está corriendo (panel XAMPP → MySQL → Start).

### Error "Cannot find module"
Asegúrate de compilar antes de arrancar: `npx tsc`

### Playwright falla al instalar Chromium
En redes corporativas puede ser necesario un proxy:
```powershell
$env:HTTPS_PROXY = "http://proxy:puerto"
npx playwright install chromium
```

### Puerto 3000 en uso
Cambia el puerto en `.env`:
```env
PORT=3001
```

### Propiedades no se guardan
Comprueba los logs de PM2: `pm2 logs lliria-properties --lines 100`

### Ver la base de datos
Accede a phpMyAdmin en XAMPP: `http://localhost/phpmyadmin`  
Base de datos: `lliria_properties`
