# baddies · Despliegue en cPanel

Guía directa (asume soltura con phpMyAdmin y administrador de archivos / FTP).

## 1. Subir archivos
Sube **todo el contenido del ZIP** a `public_html/` (o a la carpeta del dominio):

```
public_html/
├── baddies-home.html
├── baddies-perfil.html
├── baddies-panel-modelo.html
├── baddies-registro.html
├── baddies-admin.html
├── baddies-cuenta.html
├── baddies-config.js
├── baddies-estado.js
├── backend/        (los .php + schema.sql + .htaccess)
└── assets/         (imágenes)
```

`baddies-home.html` es la portada. Si quieres que el dominio entre directo ahí, duplícalo como `index.html` o agrega una regla en `.htaccess` raíz (`DirectoryIndex baddies-home.html`).

## 2. Base de datos (phpMyAdmin)
1. cPanel → **MySQL Databases**: crea una base (ej. `tucuenta_baddies`) y un usuario, y **asígnalo a la base con todos los privilegios**.
2. phpMyAdmin → selecciona la base → pestaña **Importar** → sube `backend/schema.sql` → Continuar. Deben quedar **18 tablas**.

## 3. Configurar la conexión
Edita `backend/config.php`, bloque CONFIG:
```php
const DB_HOST = 'localhost';           // en la mayoría de cPanel es localhost
const DB_NAME = 'tucuenta_baddies';
const DB_USER = 'tucuenta_baddies';
const DB_PASS = 'TU_PASSWORD_REAL';    // reemplaza el placeholder
```
`UPLOAD_DIR` / `UPLOAD_URL` ya quedan relativos a `backend/uploads`.

## 4. Carpeta de subidas
Crea `backend/uploads/` con permisos de escritura (755, o 775 si tu host lo exige). Aquí se guardan las fotos/videos reales.

## 5. Primer administrador
Abre **una vez** en el navegador:
```
https://tudominio.cl/backend/crear-admin.php?email=TU_CORREO&pass=TU_CLAVE
```
Verás un OK. **Borra `crear-admin.php` enseguida** (es de un solo uso).

## 6. Encender el backend
Edita `baddies-config.js`:
```js
window.BADDIES = { USE_API: true, API_BASE: 'backend' };
```
Listo. Todas las pantallas (home, perfil, panel, registro, login, admin, cuenta) pasan a usar el servidor real.

## 7. Comprobación rápida
- `https://tudominio.cl/baddies-registro.html` → registra una modelo de prueba (marca KYC).
- `https://tudominio.cl/baddies-admin.html` → entra con tu admin → la verás en **Cola** → Aprobar.
- `https://tudominio.cl/baddies-home.html` → debe aparecer en el directorio.
- Entra a su perfil, edita estado/tarifas desde el panel, confirma que el perfil público cambia.

## Seguridad (no te saltes esto)
- **HTTPS obligatorio** (las cookies de sesión son `secure`/`httponly`). En cPanel activa AutoSSL.
- Borra `crear-admin.php` después del paso 5.
- `config.php` nunca debe quedar accesible como texto: el `.htaccess` de `backend/` ya bloquea el acceso directo a `.sql` y archivos sensibles; confirma que PHP está ejecutándose (no mostrándose como texto).
- Mantén el placeholder de password fuera del repositorio si versionas el código.

## Notas
- **Pasarelas de pago**: `pago-flow.php` es un stub. NO actives cobros online hasta tener la **aprobación comercial del rubro** de Flow/Verotel. Mientras tanto, los pagos de publicidad se registran a mano en Admin → Pagos (boleta/transferencia).
- **KYC**: hoy el resultado de verificación se recibe como dato. Para producción, integra Didit y guarda **solo el resultado** (nunca el documento).
- Requiere **PHP 8.1+** con `pdo_mysql`. `mbstring` es recomendable pero el código tiene fallback si falta.

## Asistente de ayuda (IA) — opcional

El sitio incluye un asistente de chat (`baddies-asistente.js`) que resuelve dudas
sobre el uso del sitio. Funciona en dos modos:

- **Sin key:** responde con una base de preguntas frecuentes local (sin costo, sin IA).
- **Con IA real:** edita `backend/config.php` y reemplaza `IA_API_KEY` (`TU_API_KEY_AQUI`)
  por tu API key. Por defecto usa Anthropic (Claude Haiku, económico). Para otro
  proveedor, ajusta `IA_ENDPOINT` / `IA_MODEL` y el armado del request en
  `backend/asistente.php`.

La key vive **solo en el servidor**; nunca se expone al navegador. El asistente
tiene rate-limit por IP (`IA_MAX_HORA`, 20 mensajes/hora) para proteger tu presupuesto.
Edita el WhatsApp de soporte con `window.BADDIES_WA_SOPORTE` antes de cargar el script
(o el placeholder en `baddies-asistente.js`). El asistente solo orienta sobre el sitio;
nunca agenda ni intermedia encuentros.
