# GoberData · AlcaldIA — Proyecto Laravel

Plataforma de gestión e inteligencia para campañas de alcaldía en Colombia.
Este paquete contiene el proyecto completo con todos los cambios aplicados:
corrección legal del módulo de competencia, inteligencia por Ad Library,
landing pública y planes.

---

## ⚠️ IMPORTANTE — Antes que nada

**Este ZIP NO incluye el archivo `.env`** (el que tenía tus credenciales).
Se quitó a propósito por seguridad: contenía tu APP_KEY, la contraseña de la
base de datos y una clave de AWS. Si ese archivo circula, esas claves quedan
expuestas.

Además, esas credenciales que estaban en tu repo original **deberías rotarlas**
(generar nuevas), porque ya estuvieron dentro de un archivo comprimido antes.
En especial la clave de AWS.

Para arrancar, copia el ejemplo y llena tus propios valores:

```bash
cp .env.example .env
php artisan key:generate
```

---

## Requisitos

- PHP 8.2 o superior
- Composer
- PostgreSQL (o MySQL)
- Redis (para colas y caché)
- Node.js (para compilar assets del frontend)

## Instalación

```bash
# 1. Dependencias de PHP
composer install

# 2. Dependencias de frontend
npm install
npm run build

# 3. Configuración
cp .env.example .env
php artisan key:generate
# edita .env con tu base de datos y credenciales

# 4. Base de datos
php artisan migrate

# 5. Datos de demostración (opcional, para mostrar a clientes)
php artisan db:seed --class=CompleteDataSeeder

# 6. Arrancar
php artisan serve
```

La aplicación queda en `http://localhost:8000`.

---

## Qué trae este paquete de nuevo

### Corrección legal del módulo de competencia
Se eliminó el scraping ilegal que guardaba datos de ciudadanos. Ver
`AUDITORIA-COMPETENCIA.md` para el detalle completo y `COMO-APLICAR.md`
para las instrucciones.

### Inteligencia competitiva legal
- Servicio que consulta la Ad Library de Meta (pauta pública del rival)
- Tablas y modelos para guardar snapshots
- Job programable (`sync:competitor-intelligence`)
- API para el panel

Para activarla, configura el token en `config/services.php` y programa el
comando cada 6 horas en `app/Console/Kernel.php`. Detalle en `COMO-APLICAR.md`.

### Landing pública
Servida en `/landing` y `/planes`. Explica la plataforma, la ventaja de la
inteligencia legal y los tres planes (Mensual, Semestral, Campaña completa).

Los precios están como `$—` a propósito. Ponlos cuando los definas, buscando
los bloques `plan-price` en `resources/views/landing.blade.php`.

---

## Rutas principales

| Ruta | Qué es |
|---|---|
| `/` | Entrada de la aplicación |
| `/landing` y `/planes` | Landing pública de venta |
| `/api/campaigns/{id}/competitors/intelligence` | Inteligencia del rival (panel) |

---

## Notas de arquitectura

- **Multi-tenant** con `stancl/tenancy`: cada tenant es una campaña (ciudad + candidato).
- **IA real**: `AIContentService` llama a OpenAI/Anthropic para generar contenido.
- **42 seeders** de datos demo para poblar el sistema.

## Pendientes documentados (antes de producción)

- Restringir `SocialComment` a comentarios de canales propios.
- Renombrar `QrDataScrapingService` (no scrapea, pero el nombre confunde).
- `.env` con credenciales nuevas y rotadas.
