# SQLite en desarrollo (XAMPP)

## Por qué se corrompe `database.sqlite`

El error `database disk image is malformed` suele aparecer cuando **dos procesos escriben al mismo fichero**:

1. **Apache (XAMPP)** atendiendo la API (`/api/v1/...`).
2. **`php artisan migrate:fresh` / `db:seed`** reconstruyendo tablas.

Si ejecutas `migrate:fresh` mientras la app o el móvil llaman al backend, SQLite puede quedar inconsistente.

El seeder de fotos **antes** descargaba ~60 imágenes de Internet (~80 s). Durante ese tiempo Apache seguía usando la BD → alto riesgo de corrupción.

## Uso seguro

1. **Detén Apache** en el panel XAMPP (Stop).
2. Reconstruye la base:

```bash
cd backend
php artisan db:rebuild --force
```

3. **Arranca Apache** de nuevo.

## Comandos

| Comando | Descripción |
|---------|-------------|
| `php artisan db:rebuild --force` | `migrate:fresh` + seed con fotos locales (rápido) |
| `php artisan db:rebuild --force --with-remote-photos` | Igual pero descarga picsum (lento; solo con Apache parado) |

## Variables `.env`

- `DB_DATABASE` — usa **ruta absoluta** en Windows para que CLI y Apache apunten al mismo fichero.
- `SEED_DOWNLOAD_PHOTOS=false` — fotos generadas localmente (recomendado).
- `DB_SQLITE_BUSY_TIMEOUT=30000` — espera si el fichero está ocupado.

## Credenciales demo tras seed

- `admin@mallorcatrabaja.local` / `password`
- `demo@mallorcatrabaja.local` / `password`

## Producción

Para uso real con tráfico concurrente, usa **MySQL/MariaDB** en lugar de SQLite.
