# 📊 Sistema de Estadísticas Chaturbate con Gestión de Studios

Un sistema completo para monitorear modelos de Chaturbate, gestionar studios y calcular nóminas automáticamente.

## ✨ Características

### 🔍 Búsqueda y Monitoreo
- Buscar modelos de Chaturbate por nombre de usuario
- Ver información completa del modelo (edad, género, ubicación, bio)
- Estado en tiempo real (online/offline/privado)
- Estadísticas históricas de viewers (últimos 7 días)
- Monitoreo en tiempo real de múltiples modelos

### 🏢 Gestión de Studios
- Crear y administrar múltiples studios
- Agregar modelos a cada studio
- Establecer comisiones por studio o por modelo
- Ver estado de todos los modelos de un studio

### 💰 Sistema de Nómina
- Registrar ganancias de modelos (en tokens)
- Cálculo automático de:
  - USD (1 token = $0.05)
  - Conversión a COP con tasa de cambio
  - Comisión del studio (porcentaje configurable)
  - Pago neto al modelo
- Generar nóminas por período (mensual, etc)
- Aprobar y marcar como pagadas
- Reportes detallados por modelo

### 📈 Análisis
- Gráficos de viewers por día
- Historial de ganancias
- Estadísticas por período
- Tasa de cambio actualizable

---

## 🚀 Instalación

### 1. Requisitos
- PHP 8.0+
- MySQL 8.0+
- Apache con módulo rewrite habilitado
- cURL habilitado

### 2. Crear Base de Datos

```bash
# En tu Hestia Control Panel o MySQL CLI
mysql -u root -p

CREATE DATABASE vampire_ChaturbateStats CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

### 3. Ejecutar Scripts SQL

```bash
# Tabla base de modelos y monitoreo
mysql -u vampire_stats -p vampire_ChaturbateStats < schema.sql

# Tablas de studios y nómina
mysql -u vampire_stats -p vampire_ChaturbateStats < schema-studios.sql
```

### 4. Configurar Credenciales

Editar `php/config.php`:

```php
define('DB_HOST', 'localhost');
define('DB_USER', 'vampire_stats');
define('DB_PASS', 'tu_password_aqui');
define('DB_NAME', 'vampire_ChaturbateStats');
define('DB_PORT', 3306);
```

### 5. Permisos de Carpetas

```bash
chmod 755 /home/claude/chaturbate-stats
chmod 755 /home/claude/chaturbate-stats/php
chmod 755 /home/claude/chaturbate-stats/js
chmod 755 /home/claude/chaturbate-stats/css
chmod 755 /home/claude/chaturbate-stats/pages
```

### 6. Configurar en Hestia Control Panel

- Subir carpeta a `/home/username/public_html/chaturbate-stats/`
- Acceder vía: `https://tundominio.com/chaturbate-stats/pages/search.php`

---

## 📋 Estructura de Carpetas

```
chaturbate-stats/
├── index.html                 # Página de inicio
├── schema.sql                 # BD modelos
├── schema-studios.sql         # BD studios y nómina
├── php/
│   ├── config.php            # Configuración
│   ├── handlers-api.php      # API Chaturbate
│   ├── handlers-studios.php  # Gestión studios
│   └── additional-routes.php # Rutas extras
├── pages/
│   ├── search.php            # Buscar modelos
│   ├── realtime.php          # Monitoreo tiempo real
│   └── studios.php           # Gestión de studios
├── js/
│   ├── main.js              # JS principal
│   ├── realtime.js          # JS tiempo real
│   └── studios.js           # JS studios
└── css/
    ├── styles.css           # Estilos principales
    ├── realtime.css         # Estilos tiempo real
    └── studios.css          # Estilos studios
```

---

## 🎯 Flujo de Uso

### 1️⃣ Buscar y Seguir Modelos

**Acceder a:** `pages/search.php`

```
1. Ingresa nombre de usuario de Chaturbate
2. Click en "Buscar"
3. Ver información del modelo
4. Click en "⭐ Seguir Modelo" para agregar a monitoreo
```

### 2️⃣ Crear Studio

**Acceder a:** `pages/studios.php` → Tab "Studios"

```
1. Click en "➕ Nuevo Studio"
2. Ingresar:
   - Nombre del studio
   - Propietario
   - Email
   - Comisión (%) - Ej: 40%
3. Crear
```

### 3️⃣ Agregar Modelos al Studio

**Tab "Modelos"**

```
1. Seleccionar Studio
2. Click "➕ Agregar Modelo"
3. Ingresar:
   - Username de Chaturbate
   - Nombre de Escenario (opcional)
4. Agregar
```

### 4️⃣ Registrar Ganancias

**Tab "Ganancias"**

```
1. Seleccionar período con el calendario
2. Sistema muestra tabla de ganancias
3. Agregar ganancias manualmente:
   - Modelo
   - Cantidad de tokens
   - Fecha
```

### 5️⃣ Generar Nómina

**Tab "Nómina"**

```
1. Click "📋 Generar Nómina"
2. Sistema calcula automáticamente:
   - Total de tokens
   - Conversion a USD (tokens × $0.05)
   - Conversión a COP (USD × tasa)
   - Comisión del studio
   - Pago neto a modelos
3. Ver detalles por modelo
4. Aprobar
5. Marcar como Pagada
```

### 6️⃣ Actualizar Tasa de Cambio

**Tab "Tasa de Cambio"**

```
1. Ingresa nueva tasa USD → COP
2. Click "✓ Actualizar"
3. Se usa en nuevas nóminas
```

---

## 💡 Ejemplos de Cálculos

### Ejemplo: Modelo ganó 500 tokens

**Parámetros:**
- Tokens: 500
- Tasa USD → COP: $3,900
- Comisión Studio: 40%

**Cálculo:**
```
1. USD = 500 tokens × $0.05 = $25 USD
2. COP = $25 × $3,900 = $97,500 COP
3. Comisión Studio = $97,500 × 40% = $39,000 COP
4. Pago Modelo = $97,500 - $39,000 = $58,500 COP
```

---

## 🔧 Funciones de API

### Buscar Modelo
```
POST php/handlers-api.php?action=search
Parámetros: username=username
Respuesta: Datos del modelo (status, avatar, bio, etc)
```

### Seguir Modelo
```
POST php/handlers-studios.php?action=add_model
Parámetros: studio_id, username, stage_name
```

### Registrar Ganancias
```
POST php/handlers-studios.php?action=log_earning
Parámetros: studio_model_id, tokens, date
```

### Generar Nómina
```
POST php/handlers-studios.php?action=generate_payroll
Parámetros: studio_id, period_start, period_end
Respuesta: Datos de nómina generada
```

### Obtener Nóminas
```
POST php/handlers-studios.php?action=get_payrolls
Parámetros: studio_id
Respuesta: Lista de nóminas
```

---

## 📊 Visualización de Datos

### Dashboard de Búsqueda
- Avatar del modelo
- Información personal (edad, género, ubicación)
- Bio
- Gráfico de viewers últimos 7 días
- Estadísticas (prom, máx, min)

### Dashboard de Tiempo Real
- Grid de modelos siendo monitoreados
- Estado (Online/Offline)
- Última actualización
- Botones para actualizar, ver stats
- Filtros por estado y búsqueda
- Contadores de online/offline

### Dashboard de Studios
- Listado de studios
- Modelos por studio
- Tabla de ganancias por período
- Nóminas generadas
- Detalles de pago por modelo

---

## ⚙️ Configuración Avanzada

### Cambiar comisión por modelo

En `pages/studios.php`, cada modelo puede tener comisión diferente:

```sql
UPDATE studio_models 
SET commission_override = 50.00 
WHERE id = 5;
```

### Tasa de cambio automática (Futuro)

Implementar API de tasa de cambio en tiempo real:
- XE.com API
- Fixer.io
- Open Exchange Rates

### Cron Job para Sincronización

Agregar a crontab:
```bash
0 */6 * * * curl -X POST https://tundominio.com/chaturbate-stats/php/handlers-api.php?action=sync_all
```

---

## 🔒 Seguridad

### Implementado
✅ Validación de input  
✅ Prepared statements  
✅ CSRF protection en formularios  
✅ XSS prevention (htmlspecialchars)  
✅ SQL injection prevention  

### Recomendaciones
- Usar HTTPS
- Cambiar credenciales por defecto
- Hacer backup regular de BD
- Limitar acceso a `php/` vía `.htaccess`
- Usar contraseña fuerte en MySQL

### .htaccess para proteger PHP
```apache
<FilesMatch "\.php$">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "^config\.php$">
    Order allow,deny
    Deny from all
</FilesMatch>
```

---

## 🐛 Troubleshooting

### "Database connection error"
- Verificar credenciales en `config.php`
- Confirmar que usuario MySQL existe
- Revisar que base de datos está creada

### "Model not found"
- Username incorrecto o no existe en Chaturbate
- Username no es válido (solo alfanuméricos, guion, underscore)
- Modelo baneado de Chaturbate

### "No se ven ganancias"
- Registrar ganancias primero en Tab "Ganancias"
- Verificar que el modelo está agregado al studio
- Revisar período de fecha seleccionado

### "Nómina muestra $0"
- Confirmar que hay ganancias en el período
- Revisar tasa de cambio está actualizada
- Comprobar que comisión está configurada

---

## 📚 Variables y Constantes

### Valores Constantes
```php
1 Token = $0.05 USD (Chaturbate)
Tasa por defecto = $3,900 COP
Comisión por defecto = 40%
Cache tiempo = 300 segundos
```

### Parámetros Configurables
- Comisión por studio
- Comisión por modelo (override)
- Tasa de cambio USD → COP
- Período de nómina

---

## 📞 Soporte y Actualizaciones

Para reportar bugs o solicitar features, documentar:
1. Qué intentaste hacer
2. Qué error apareció
3. Screenshot o código de error
4. Pasos para reproducir

---

## 📄 Licencia

Uso privado para tu dominio tarriso.com

---

**Última actualización:** Julio 2026
**Versión:** 1.0.0
**Desarrollado para:** Studios de Chaturbate
