-- phpMyAdmin SQL Dump
-- version 5.2.2
-- https://www.phpmyadmin.net/
--
-- Servidor: localhost:3306
-- Tiempo de generación: 01-06-2026 a las 20:00:00
-- Versión del servidor: 10.11.14-MariaDB-cll-lve
-- Versión de PHP: 8.4.20

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de datos: `hackruzc_partido2`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `admin_usuarios`
--

CREATE TABLE `admin_usuarios` (
  `id` int(10) UNSIGNED NOT NULL,
  `username` varchar(50) NOT NULL,
  `password_hash` varchar(255) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `activo` tinyint(1) NOT NULL DEFAULT 1,
  `ultimo_login` datetime DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `admin_usuarios`
--

INSERT INTO `admin_usuarios` (`id`, `username`, `password_hash`, `email`, `activo`, `ultimo_login`, `creado_en`) VALUES
(1, 'admin', '$2y$10$WnVLoRMZkAPosYC1ymvem.ACHHlhci0kuFO8rvOh/zClIZMoR7Qsi', 'admin@tudominio.com', 1, '2026-05-28 20:01:28', '2026-05-01 07:41:39');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `analisis_final`
--

CREATE TABLE `analisis_final` (
  `id` int(10) UNSIGNED NOT NULL,
  `fixture_id` int(10) UNSIGNED NOT NULL,
  `pronostico` enum('local','empate','visitante','no_apostar') NOT NULL DEFAULT 'no_apostar',
  `confianza` tinyint(3) UNSIGNED NOT NULL DEFAULT 0,
  `cuota_recomendada` decimal(6,2) DEFAULT NULL,
  `razonamiento` text DEFAULT NULL,
  `gemini_raw` text DEFAULT NULL,
  `llama_raw` text DEFAULT NULL,
  `es_multiple` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp(),
  `mercado_optimo` varchar(80) DEFAULT NULL COMMENT 'Ej: 1X2, Over2.5, BTTS, Handicap',
  `cuota_estimada` decimal(6,2) DEFAULT NULL COMMENT 'Cuota realista estimada por IA',
  `ev_calculado` decimal(6,4) DEFAULT NULL COMMENT 'Expected Value = (prob_real × cuota) - 1',
  `prob_real` tinyint(4) DEFAULT NULL COMMENT 'Probabilidad real estimada 0-100',
  `prob_implicita` tinyint(4) DEFAULT NULL COMMENT 'Probabilidad implícita del mercado 0-100',
  `stake_pct` tinyint(4) DEFAULT NULL COMMENT 'Stake recomendado % del bankroll',
  `nivel_riesgo` enum('BAJO','MEDIO','ALTO') DEFAULT NULL,
  `es_apuesta_fuerte` tinyint(1) DEFAULT 0 COMMENT 'EV > 0.20',
  `analisis_tactico` text DEFAULT NULL,
  `analisis_estadistico` text DEFAULT NULL,
  `mercados_json` text DEFAULT NULL COMMENT 'JSON con todos los mercados analizados',
  `conclusion` varchar(500) DEFAULT NULL COMMENT 'Conclusión final 3 líneas'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `analisis_final`
--

INSERT INTO `analisis_final` (`id`, `fixture_id`, `pronostico`, `confianza`, `cuota_recomendada`, `razonamiento`, `gemini_raw`, `llama_raw`, `es_multiple`, `creado_en`, `mercado_optimo`, `cuota_estimada`, `ev_calculado`, `prob_real`, `prob_implicita`, `stake_pct`, `nivel_riesgo`, `es_apuesta_fuerte`, `analisis_tactico`, `analisis_estadistico`, `mercados_json`, `conclusion`) VALUES
(108, 619830, 'visitante', 85, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Manchester City busca asegurar el título de liga en las últimas jornadas, mientras que el Bournemouth, ya sin presión por la permanencia, puede jugar con más libertad. La localía del Bournemouth es un factor, pero la diferencia de calidad es abismal.\n\n⚽ ANÁLISIS TÁCTICO\nEl City de Guardiola probablemente dominará la posesión con su habitual 3-2-4-1, buscando desbordar por bandas. El Bournemouth podría optar por un bloque bajo y transiciones rápidas. Los duelos en el centro del campo serán cruciales para la recuperación y la salida del balón del City.\n\n📊 ESTADÍSTICAS\nEl City es el equipo más goleador y con mejor xG de la liga, mientras que el Bournemouth ha mostrado debilidades defensivas en casa contra equipos de alto calibre. Se espera un partido con varios goles, favoreciendo el Over 2.5.\n\n⚔️ DUELOS CLAVE\n  · De Bruyne vs. Christie (mediocampo)\n  · Haaland vs. Senesi (defensa)\n\n⭐ JUGADORES CLAVE\n  · Kevin De Bruyne (Manchester City)\n  · Dominic Solanke (Bournemouth)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Visitante gana (2)\n  · Cuota estimada: 1.5\n  · EV: 0.00%\n  · Prob real: 66% vs implícita: 66%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @7 | 14.29% | EV: -2.00%\n  · Empate (X): @4.5 | 22.22% | EV: -2.00%\n  · Visitante gana (2): @1.5 | 66.67% | EV: 0.00%\n  · Over 2.5 goles: @1.6 | 62.5% | EV: -2.00%\n  · Under 2.5 goles: @2.3 | 37.5% | EV: +2.00%\n  · BTTS Sí: @1.8 | 55.56% | EV: -4.00%\n  · BTTS No: @2 | 44.44% | EV: -4.00%\n\n✅ CONCLUSIÓN\nEl Manchester City es muy superior y se juega el título. La cuota para su victoria es baja pero justificada. No se ven value bets claros con las cuotas estimadas.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-18 08:11:35\",\"pronostico\":\"visitante\",\"confianza\":85,\"contexto\":\"El Manchester City busca asegurar el título de liga en las últimas jornadas, mientras que el Bournemouth, ya sin presión por la permanencia, puede jugar con más libertad. La localía del Bournemouth es un factor, pero la diferencia de calidad es abismal.\",\"analisis_tactico\":\"El City de Guardiola probablemente dominará la posesión con su habitual 3-2-4-1, buscando desbordar por bandas. El Bournemouth podría optar por un bloque bajo y transiciones rápidas. Los duelos en el centro del campo serán cruciales para la recuperación y la salida del balón del City.\",\"analisis_estadistico\":\"El City es el equipo más goleador y con mejor xG de la liga, mientras que el Bournemouth ha mostrado debilidades defensivas en casa contra equipos de alto calibre. Se espera un partido con varios goles, favoreciendo el Over 2.5.\",\"duelos_clave\":[\"De Bruyne vs. Christie (mediocampo)\",\"Haaland vs. Senesi (defensa)\"],\"jugadores_clave\":[\"Kevin De Bruyne (Manchester City)\",\"Dominic Solanke (Bournemouth)\"],\"mercado_optimo\":\"Visitante gana (2)\",\"cuota_estimada\":1.5,\"ev_calculado\":0,\"probabilidad_real\":66,\"prob_implicita\":66,\"nivel_riesgo\":\"MEDIO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":7,\"prob\":14.29,\"ev\":-0.02},{\"nombre\":\"Empate (X)\",\"cuota\":4.5,\"prob\":22.22,\"ev\":-0.02},{\"nombre\":\"Visitante gana (2)\",\"cuota\":1.5,\"prob\":66.67,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.6,\"prob\":62.5,\"ev\":-0.02},{\"nombre\":\"Under 2.5 goles\",\"cuota\":2.3,\"prob\":37.5,\"ev\":0.02},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55.56,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":44.44,\"ev\":-0.04}],\"razon\":\"La superioridad del Manchester City es evidente en todos los aspectos. A pesar de jugar fuera, su necesidad de puntos para el título y la diferencia de plantilla hacen que sean claros favoritos. El H2H reciente con empates 0-0 es anómalo y no refleja la realidad actual de ambos equipos.\",\"conclusion\":\"El Manchester City es muy superior y se juega el título. La cuota para su victoria es baja pero justificada. No se ven value bets claros con las cuotas estimadas.\",\"cuota_minima\":1.55,\"cuotas_trabajo\":{\"local\":7,\"empate\":4.5,\"visitante\":1.5}}', '', 0, '2026-05-18 08:11:35', 'Visitante gana (2)', 1.50, 0.0000, 66, 66, 1, 'MEDIO', 0, 'El City de Guardiola probablemente dominará la posesión con su habitual 3-2-4-1, buscando desbordar por bandas. El Bournemouth podría optar por un bloque bajo y transiciones rápidas. Los duelos en el centro del campo serán cruciales para la recuperación y la salida del balón del City.', 'El City es el equipo más goleador y con mejor xG de la liga, mientras que el Bournemouth ha mostrado debilidades defensivas en casa contra equipos de alto calibre. Se espera un partido con varios goles, favoreciendo el Over 2.5.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":7,\"prob\":14.29,\"ev\":-0.02},{\"nombre\":\"Empate (X)\",\"cuota\":4.5,\"prob\":22.22,\"ev\":-0.02},{\"nombre\":\"Visitante gana (2)\",\"cuota\":1.5,\"prob\":66.67,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.6,\"prob\":62.5,\"ev\":-0.02},{\"nombre\":\"Under 2.5 goles\",\"cuota\":2.3,\"prob\":37.5,\"ev\":0.02},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55.56,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":44.44,\"ev\":-0.04}]', 'El Manchester City es muy superior y se juega el título. La cuota para su victoria es baja pero justificada. No se ven value bets claros con las cuotas estimadas.'),
(109, 738916, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nLa importancia de los puntos es moderada en esta fase de la Liga Pro. Guayaquil City jugará en casa, lo que suele ser una ventaja, pero su forma reciente es incierta. Orense, como visitante, buscará sumar para mejorar su posición.\n\n⚽ ANÁLISIS TÁCTICO\nAmbos equipos suelen ser conservadores. Guayaquil City podría apostar por un juego directo buscando aprovechar la localía, mientras que Orense podría replegarse y buscar el contraataque. Los duelos en el mediocampo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos si no se imponen en el juego abierto.\n\n📊 ESTADÍSTICAS\nLos H2H previos entre estos equipos son sorprendentemente igualados y con pocos goles (0-0 en los 3 registrados), lo que sugiere una tendencia a partidos cerrados. El rendimiento local de Guayaquil City y visitante de Orense no muestra una clara superioridad de ninguno. Se espera un partido con pocos goles, probablemente Under 2.5.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo central (control del juego)\n  · Defensas centrales vs delanteros (evitar goles)\n\n⭐ JUGADORES CLAVE\n  · Jugador ofensivo de Guayaquil City (para desequilibrar)\n  · Mediocampista de Orense (para organizar el juego)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Under 2.5 goles\n  · Cuota estimada: 1.9\n  · EV: -1.30%\n  · Prob real: 52% vs implícita: 52%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2 | 50% | EV: 0.00%\n  · Empate (X): @3.3 | 30% | EV: +9.00%\n  · Visitante gana (2): @3.7 | 20% | EV: -14.00%\n  · Over 2.5 goles: @1.9 | 48% | EV: -2.00%\n  · Under 2.5 goles: @1.9 | 52% | EV: -1.30%\n  · BTTS Sí: @1.8 | 55% | EV: -5.00%\n  · BTTS No: @1.95 | 45% | EV: -5.00%\n\n✅ CONCLUSIÓN\nLa tendencia histórica de empates y pocos goles marca el partido. Sin cuotas disponibles, el análisis se basa en H2H, sugiriendo un encuentro cerrado. No se identifica un valor claro para apostar.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-18 08:12:50\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"La importancia de los puntos es moderada en esta fase de la Liga Pro. Guayaquil City jugará en casa, lo que suele ser una ventaja, pero su forma reciente es incierta. Orense, como visitante, buscará sumar para mejorar su posición.\",\"analisis_tactico\":\"Ambos equipos suelen ser conservadores. Guayaquil City podría apostar por un juego directo buscando aprovechar la localía, mientras que Orense podría replegarse y buscar el contraataque. Los duelos en el mediocampo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos si no se imponen en el juego abierto.\",\"analisis_estadistico\":\"Los H2H previos entre estos equipos son sorprendentemente igualados y con pocos goles (0-0 en los 3 registrados), lo que sugiere una tendencia a partidos cerrados. El rendimiento local de Guayaquil City y visitante de Orense no muestra una clara superioridad de ninguno. Se espera un partido con pocos goles, probablemente Under 2.5.\",\"duelos_clave\":[\"Mediocampo central (control del juego)\",\"Defensas centrales vs delanteros (evitar goles)\"],\"jugadores_clave\":[\"Jugador ofensivo de Guayaquil City (para desequilibrar)\",\"Mediocampista de Orense (para organizar el juego)\"],\"mercado_optimo\":\"Under 2.5 goles\",\"cuota_estimada\":1.9,\"ev_calculado\":-0.013,\"probabilidad_real\":52,\"prob_implicita\":52,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2,\"prob\":50,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":3.3,\"prob\":30,\"ev\":0.09},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.7,\"prob\":20,\"ev\":-0.14},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.9,\"prob\":48,\"ev\":-0.02},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.9,\"prob\":52,\"ev\":-0.013},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55,\"ev\":-0.05},{\"nombre\":\"BTTS No\",\"cuota\":1.95,\"prob\":45,\"ev\":-0.05}],\"razon\":\"Los H2H previos marcan una clara tendencia a partidos con pocos goles y empates, lo que hace difícil predecir un ganador claro. Las cuotas no están disponibles, pero basándonos en la tendencia histórica de 0-0, se espera un partido muy igualado. La falta de cuotas y la marcada tendencia a empates y pocos goles me llevan a no encontrar un valor claro en las apuestas principales.\",\"conclusion\":\"La tendencia histórica de empates y pocos goles marca el partido. Sin cuotas disponibles, el análisis se basa en H2H, sugiriendo un encuentro cerrado. No se identifica un valor claro para apostar.\",\"cuota_minima\":2,\"cuotas_trabajo\":{\"local\":2,\"empate\":3.3,\"visitante\":3.7}}', '', 0, '2026-05-18 08:12:50', 'Under 2.5 goles', 1.90, -0.0130, 52, 52, 0, 'BAJO', 0, 'Ambos equipos suelen ser conservadores. Guayaquil City podría apostar por un juego directo buscando aprovechar la localía, mientras que Orense podría replegarse y buscar el contraataque. Los duelos en el mediocampo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos si no se imponen en el juego abierto.', 'Los H2H previos entre estos equipos son sorprendentemente igualados y con pocos goles (0-0 en los 3 registrados), lo que sugiere una tendencia a partidos cerrados. El rendimiento local de Guayaquil City y visitante de Orense no muestra una clara superioridad de ninguno. Se espera un partido con pocos goles, probablemente Under 2.5.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2,\"prob\":50,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":3.3,\"prob\":30,\"ev\":0.09},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.7,\"prob\":20,\"ev\":-0.14},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.9,\"prob\":48,\"ev\":-0.02},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.9,\"prob\":52,\"ev\":-0.013},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55,\"ev\":-0.05},{\"nombre\":\"BTTS No\",\"cuota\":1.95,\"prob\":45,\"ev\":-0.05}]', 'La tendencia histórica de empates y pocos goles marca el partido. Sin cuotas disponibles, el análisis se basa en H2H, sugiriendo un encuentro cerrado. No se identifica un valor claro para apostar.'),
(110, 619833, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nPartido de final de temporada donde ambos equipos podrían tener objetivos dispares o nulos. La localía del Chelsea en Stamford Bridge es un factor, pero la forma reciente de ambos equipos es crucial para determinar la importancia de los puntos.\n\n⚽ ANÁLISIS TÁCTICO\nEl Chelsea podría optar por un 4-3-3 buscando controlar el centro del campo, mientras que el Tottenham podría responder con un 3-4-3 intentando explotar las bandas. Los duelos en el mediocampo serán clave para la posesión. La presión alta de ambos equipos podría generar errores defensivos.\n\n📊 ESTADÍSTICAS\nHistóricamente, los enfrentamientos directos en Stamford Bridge han sido igualados. El rendimiento local del Chelsea y el visitante del Tottenham son variables a considerar. Se espera un partido con pocos goles, dado el historial reciente de empates a cero.\n\n⚔️ DUELOS CLAVE\n  · Enzo Fernández vs Pape Matar Sarr\n  · Cole Palmer vs Cristian Romero\n\n⭐ JUGADORES CLAVE\n  · Cole Palmer (local)\n  · Heung-min Son (visitante)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No hay mercado óptimo con valor.\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas disponibles, no es posible realizar un análisis de valor. Los H2H recientes sugieren un partido cerrado. Se recomienda esperar a la publicación de cuotas para evaluar posibles apuestas.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-19 00:00:17\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Partido de final de temporada donde ambos equipos podrían tener objetivos dispares o nulos. La localía del Chelsea en Stamford Bridge es un factor, pero la forma reciente de ambos equipos es crucial para determinar la importancia de los puntos.\",\"analisis_tactico\":\"El Chelsea podría optar por un 4-3-3 buscando controlar el centro del campo, mientras que el Tottenham podría responder con un 3-4-3 intentando explotar las bandas. Los duelos en el mediocampo serán clave para la posesión. La presión alta de ambos equipos podría generar errores defensivos.\",\"analisis_estadistico\":\"Históricamente, los enfrentamientos directos en Stamford Bridge han sido igualados. El rendimiento local del Chelsea y el visitante del Tottenham son variables a considerar. Se espera un partido con pocos goles, dado el historial reciente de empates a cero.\",\"duelos_clave\":[\"Enzo Fernández vs Pape Matar Sarr\",\"Cole Palmer vs Cristian Romero\"],\"jugadores_clave\":[\"Cole Palmer (local)\",\"Heung-min Son (visitante)\"],\"mercado_optimo\":\"No hay mercado óptimo con valor.\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Las cuotas no están disponibles, lo que impide un análisis de valor preciso. Los enfrentamientos directos recientes muestran una tendencia a empates sin goles, lo que sugiere cautela. Sin cuotas, no se puede identificar una apuesta con valor esperado positivo.\",\"conclusion\":\"Sin cuotas disponibles, no es posible realizar un análisis de valor. Los H2H recientes sugieren un partido cerrado. Se recomienda esperar a la publicación de cuotas para evaluar posibles apuestas.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-19 00:00:17', 'No hay mercado óptimo con valor.', 0.00, 0.0000, 0, 0, 0, 'BAJO', 0, 'El Chelsea podría optar por un 4-3-3 buscando controlar el centro del campo, mientras que el Tottenham podría responder con un 3-4-3 intentando explotar las bandas. Los duelos en el mediocampo serán clave para la posesión. La presión alta de ambos equipos podría generar errores defensivos.', 'Históricamente, los enfrentamientos directos en Stamford Bridge han sido igualados. El rendimiento local del Chelsea y el visitante del Tottenham son variables a considerar. Se espera un partido con pocos goles, dado el historial reciente de empates a cero.', '[]', 'Sin cuotas disponibles, no es posible realizar un análisis de valor. Los H2H recientes sugieren un partido cerrado. Se recomienda esperar a la publicación de cuotas para evaluar posibles apuestas.'),
(111, 764100, 'empate', 65, NULL, '🤖 ANALISTA: Analista Llama Uno gj (llama-3.3-70b-versatile)\n\n📋 CONTEXTO\nLa final de la UEFA Europa League entre Freiburg y Aston Villa se juega en un estadio neutral, lo que reduce la ventaja del equipo local. Ambos equipos tienen una gran motivación para ganar el título.\n\n⚽ ANÁLISIS TÁCTICO\nFreiburg y Aston Villa tienen sistemas de juego similares, con un enfoque en el contrataque y la posesión del balón. Los duelos clave serán en el centro del campo, donde los mediocampistas de ambos equipos lucharán por el control del partido. La falta de goles en los partidos anteriores entre estos equipos sugiere un partido cerrado.\n\n📊 ESTADÍSTICAS\nLa estadística de los partidos anteriores entre Freiburg y Aston Villa muestra un promedio de 0 goles por partido, lo que sugiere un partido con pocas oportunidades de gol. La probabilidad de que ambos equipos marquen es baja.\n\n⚔️ DUELOS CLAVE\n  · Duelo entre los mediocampistas centrales\n  · Duelo entre los delanteros\n\n⭐ JUGADORES CLAVE\n  · Vincenzo Grifo (Freiburg)\n  · Ollie Watkins (Aston Villa)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Under 2.5 goles\n  · Cuota estimada: 1.95\n  · EV: -18.00%\n  · Prob real: 42% vs implícita: 51%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 45% | EV: +4.50%\n  · Empate (X): @3.2 | 25% | EV: -20.00%\n  · Visitante gana (2): @3.5 | 30% | EV: +5.00%\n  · Over 2.5 goles: @1.85 | 58% | EV: +7.30%\n  · Under 2.5 goles: @1.95 | 42% | EV: -18.00%\n  · BTTS Sí: @1.75 | 55% | EV: -4.00%\n  · BTTS No: @2 | 45% | EV: -10.00%\n\n✅ CONCLUSIÓN\nLa final de la UEFA Europa League entre Freiburg y Aston Villa se espera que sea un partido cerrado y con pocas oportunidades de gol. La apuesta en el mercado Under 2.5 goles parece la más atractiva.', '{\"analista\":\"Analista Llama Uno gj\",\"proveedor\":\"groq\",\"modelo\":\"llama-3.3-70b-versatile\",\"timestamp\":\"2026-05-19 00:00:58\",\"pronostico\":\"empate\",\"confianza\":65,\"contexto\":\"La final de la UEFA Europa League entre Freiburg y Aston Villa se juega en un estadio neutral, lo que reduce la ventaja del equipo local. Ambos equipos tienen una gran motivación para ganar el título.\",\"analisis_tactico\":\"Freiburg y Aston Villa tienen sistemas de juego similares, con un enfoque en el contrataque y la posesión del balón. Los duelos clave serán en el centro del campo, donde los mediocampistas de ambos equipos lucharán por el control del partido. La falta de goles en los partidos anteriores entre estos equipos sugiere un partido cerrado.\",\"analisis_estadistico\":\"La estadística de los partidos anteriores entre Freiburg y Aston Villa muestra un promedio de 0 goles por partido, lo que sugiere un partido con pocas oportunidades de gol. La probabilidad de que ambos equipos marquen es baja.\",\"duelos_clave\":[\"Duelo entre los mediocampistas centrales\",\"Duelo entre los delanteros\"],\"jugadores_clave\":[\"Vincenzo Grifo (Freiburg)\",\"Ollie Watkins (Aston Villa)\"],\"mercado_optimo\":\"Under 2.5 goles\",\"cuota_estimada\":1.95,\"ev_calculado\":-0.18,\"probabilidad_real\":42,\"prob_implicita\":51,\"nivel_riesgo\":\"MEDIO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}],\"razon\":\"La falta de goles en los partidos anteriores y la similitud en los sistemas de juego de ambos equipos sugieren un partido cerrado y con pocas oportunidades de gol. La motivación para ganar el título es alta, pero la experiencia en finales de competiciones europeas es limitada para ambos equipos.\",\"conclusion\":\"La final de la UEFA Europa League entre Freiburg y Aston Villa se espera que sea un partido cerrado y con pocas oportunidades de gol. La apuesta en el mercado Under 2.5 goles parece la más atractiva.\",\"cuota_minima\":1.8,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-19 00:00:58', 'Under 2.5 goles', 1.95, -0.1800, 42, 51, 1, 'MEDIO', 0, 'Freiburg y Aston Villa tienen sistemas de juego similares, con un enfoque en el contrataque y la posesión del balón. Los duelos clave serán en el centro del campo, donde los mediocampistas de ambos equipos lucharán por el control del partido. La falta de goles en los partidos anteriores entre estos equipos sugiere un partido cerrado.', 'La estadística de los partidos anteriores entre Freiburg y Aston Villa muestra un promedio de 0 goles por partido, lo que sugiere un partido con pocas oportunidades de gol. La probabilidad de que ambos equipos marquen es baja.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}]', 'La final de la UEFA Europa League entre Freiburg y Aston Villa se espera que sea un partido cerrado y con pocas oportunidades de gol. La apuesta en el mercado Under 2.5 goles parece la más atractiva.'),
(112, 717230, 'no_apostar', 60, NULL, '🤖 ANALISTA: Analista Llama Uno gj (llama-3.3-70b-versatile)\n\n📋 CONTEXTO\nEl partido entre Hammarby W y Malmo FF W se disputará en el estadio Hammarby IP. La falta de contexto específico sobre la liga y las cuotas no disponibles complican el análisis. La importancia de los puntos y la localía pueden influir en el resultado.\n\n⚽ ANÁLISIS TÁCTICO\nEl sistema de juego de ambos equipos puede ser conservador, considerando los duelos clave y el balón parado. La estrategia defensiva puede prevalecer en este encuentro. Los duelos clave pueden incluir el enfrentamiento entre las delanteras de ambos equipos.\n\n📊 ESTADÍSTICAS\nLa estadística de los partidos anteriores muestra un empate en los tres últimos enfrentamientos, con un promedio de 0 goles por partido. Esto sugiere un partido bajo en goles.\n\n⚔️ DUELOS CLAVE\n  · Delanteras de Hammarby W vs Defensa de Malmo FF W\n  · Mediocampistas de Malmo FF W vs Defensa de Hammarby W\n\n⭐ JUGADORES CLAVE\n  · Delantera de Hammarby W\n  · Defensora de Malmo FF W\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No hay un mercado óptimo claro\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @0 | 0% | EV: 0.00%\n  · Empate (X): @0 | 0% | EV: 0.00%\n  · Visitante gana (2): @0 | 0% | EV: 0.00%\n  · Over 2.5 goles: @0 | 0% | EV: 0.00%\n  · Under 2.5 goles: @0 | 0% | EV: 0.00%\n  · BTTS Sí: @0 | 0% | EV: 0.00%\n  · BTTS No: @0 | 0% | EV: 0.00%\n\n✅ CONCLUSIÓN\nNo hay suficiente información para realizar una apuesta. El partido puede ser bajo en goles. La estrategia defensiva puede prevalecer.', '{\"analista\":\"Analista Llama Uno gj\",\"proveedor\":\"groq\",\"modelo\":\"llama-3.3-70b-versatile\",\"timestamp\":\"2026-05-19 00:06:39\",\"pronostico\":\"no_apostar\",\"confianza\":60,\"contexto\":\"El partido entre Hammarby W y Malmo FF W se disputará en el estadio Hammarby IP. La falta de contexto específico sobre la liga y las cuotas no disponibles complican el análisis. La importancia de los puntos y la localía pueden influir en el resultado.\",\"analisis_tactico\":\"El sistema de juego de ambos equipos puede ser conservador, considerando los duelos clave y el balón parado. La estrategia defensiva puede prevalecer en este encuentro. Los duelos clave pueden incluir el enfrentamiento entre las delanteras de ambos equipos.\",\"analisis_estadistico\":\"La estadística de los partidos anteriores muestra un empate en los tres últimos enfrentamientos, con un promedio de 0 goles por partido. Esto sugiere un partido bajo en goles.\",\"duelos_clave\":[\"Delanteras de Hammarby W vs Defensa de Malmo FF W\",\"Mediocampistas de Malmo FF W vs Defensa de Hammarby W\"],\"jugadores_clave\":[\"Delantera de Hammarby W\",\"Defensora de Malmo FF W\"],\"mercado_optimo\":\"No hay un mercado óptimo claro\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"MEDIO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Visitante gana (2)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Under 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS Sí\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS No\",\"cuota\":0,\"prob\":0,\"ev\":0}],\"razon\":\"La falta de información sobre las cuotas y la tendencia a partidos con pocos goles en los enfrentamientos anteriores sugieren que no hay una apuesta clara. La estrategia defensiva y la importancia de los puntos pueden influir en el resultado.\",\"conclusion\":\"No hay suficiente información para realizar una apuesta. El partido puede ser bajo en goles. La estrategia defensiva puede prevalecer.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-19 00:06:39', 'No hay un mercado óptimo claro', 0.00, 0.0000, 0, 0, 0, 'MEDIO', 0, 'El sistema de juego de ambos equipos puede ser conservador, considerando los duelos clave y el balón parado. La estrategia defensiva puede prevalecer en este encuentro. Los duelos clave pueden incluir el enfrentamiento entre las delanteras de ambos equipos.', 'La estadística de los partidos anteriores muestra un empate en los tres últimos enfrentamientos, con un promedio de 0 goles por partido. Esto sugiere un partido bajo en goles.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Visitante gana (2)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Under 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS Sí\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS No\",\"cuota\":0,\"prob\":0,\"ev\":0}]', 'No hay suficiente información para realizar una apuesta. El partido puede ser bajo en goles. La estrategia defensiva puede prevalecer.'),
(113, 717229, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nLa importancia de los puntos es moderada en esta fase de la liga. El Hacken W juega en casa, lo que suele ser una ventaja, pero la forma reciente es incierta sin datos específicos. Se aplica un criterio conservador.\n\n⚽ ANÁLISIS TÁCTICO\nAmbos equipos probablemente emplearán sistemas equilibrados, buscando controlar el centro del campo. Los duelos en las bandas y la efectividad a balón parado serán cruciales. Se espera un partido táctico con pocas concesiones.\n\n📊 ESTADÍSTICAS\nLos H2H previos muestran una tendencia a empates y pocos goles, con una media de 0 goles por partido. Esto sugiere un rendimiento defensivo sólido o una falta de contundencia ofensiva en enfrentamientos directos.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo central\n  · Laterales vs extremos\n\n⭐ JUGADORES CLAVE\n  · Jugadora clave del Hacken W (local)\n  · Jugadora clave del Vaxjo DFF W (visitante)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No hay mercado óptimo con valor positivo.\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @0 | 0% | EV: 0.00%\n  · Empate (X): @0 | 0% | EV: 0.00%\n  · Visitante gana (2): @0 | 0% | EV: 0.00%\n  · Over 2.5 goles: @0 | 0% | EV: 0.00%\n  · Under 2.5 goles: @0 | 0% | EV: 0.00%\n  · BTTS Sí: @0 | 0% | EV: 0.00%\n  · BTTS No: @0 | 0% | EV: 0.00%\n\n✅ CONCLUSIÓN\nLos datos históricos de H2H son extremadamente limitados y sugieren un partido de bajo score. Sin cuotas disponibles, no se puede identificar una apuesta de valor. Se recomienda la prudencia y la espera de información adicional.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-20 00:00:14\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"La importancia de los puntos es moderada en esta fase de la liga. El Hacken W juega en casa, lo que suele ser una ventaja, pero la forma reciente es incierta sin datos específicos. Se aplica un criterio conservador.\",\"analisis_tactico\":\"Ambos equipos probablemente emplearán sistemas equilibrados, buscando controlar el centro del campo. Los duelos en las bandas y la efectividad a balón parado serán cruciales. Se espera un partido táctico con pocas concesiones.\",\"analisis_estadistico\":\"Los H2H previos muestran una tendencia a empates y pocos goles, con una media de 0 goles por partido. Esto sugiere un rendimiento defensivo sólido o una falta de contundencia ofensiva en enfrentamientos directos.\",\"duelos_clave\":[\"Mediocampo central\",\"Laterales vs extremos\"],\"jugadores_clave\":[\"Jugadora clave del Hacken W (local)\",\"Jugadora clave del Vaxjo DFF W (visitante)\"],\"mercado_optimo\":\"No hay mercado óptimo con valor positivo.\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Visitante gana (2)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Under 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS Sí\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS No\",\"cuota\":0,\"prob\":0,\"ev\":0}],\"razon\":\"Los H2H previos son extremadamente reveladores, indicando una paridad total y una ausencia total de goles en los últimos tres encuentros. Esto sugiere un partido con pocas oportunidades y una alta probabilidad de un resultado cerrado. Sin cuotas disponibles para evaluar el valor, la prudencia dicta no apostar.\",\"conclusion\":\"Los datos históricos de H2H son extremadamente limitados y sugieren un partido de bajo score. Sin cuotas disponibles, no se puede identificar una apuesta de valor. Se recomienda la prudencia y la espera de información adicional.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-20 00:00:14', 'No hay mercado óptimo con valor positivo.', 0.00, 0.0000, 0, 0, 0, 'BAJO', 0, 'Ambos equipos probablemente emplearán sistemas equilibrados, buscando controlar el centro del campo. Los duelos en las bandas y la efectividad a balón parado serán cruciales. Se espera un partido táctico con pocas concesiones.', 'Los H2H previos muestran una tendencia a empates y pocos goles, con una media de 0 goles por partido. Esto sugiere un rendimiento defensivo sólido o una falta de contundencia ofensiva en enfrentamientos directos.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Empate (X)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Visitante gana (2)\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Over 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"Under 2.5 goles\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS Sí\",\"cuota\":0,\"prob\":0,\"ev\":0},{\"nombre\":\"BTTS No\",\"cuota\":0,\"prob\":0,\"ev\":0}]', 'Los datos históricos de H2H son extremadamente limitados y sugieren un partido de bajo score. Sin cuotas disponibles, no se puede identificar una apuesta de valor. Se recomienda la prudencia y la espera de información adicional.'),
(114, 752973, 'no_apostar', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Al Masry, jugando en casa, buscará asegurar puntos cruciales en el grupo de campeonato para mejorar su posición. Al Ahly, como visitante, intentará mantener su dominio y asegurar la victoria para consolidar su liderato.\n\n⚽ ANÁLISIS TÁCTICO\nSe espera un Al Masry con un bloque defensivo sólido, buscando transiciones rápidas. Al Ahly probablemente dominará la posesión con un juego posicional, intentando desbordar por las bandas. El balón parado podría ser decisivo para ambos equipos.\n\n📊 ESTADÍSTICAS\nAl Masry suele ser fuerte en casa, pero sus enfrentamientos directos contra Al Ahly son históricamente igualados y con pocos goles. Se anticipa un partido con pocas ocasiones claras y baja probabilidad de BTTS.\n\n⚔️ DUELOS CLAVE\n  · Defensa Al Masry vs Ataque Al Ahly\n  · Mediocampo Al Masry vs Mediocampo Al Ahly\n\n⭐ JUGADORES CLAVE\n  · Jugador ofensivo Al Masry\n  · Mediocampista Al Ahly\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas disponibles, es imposible realizar un análisis de valor. Se recomienda esperar a que las cuotas se publiquen para poder identificar posibles apuestas. La prudencia es clave ante la falta de información.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-20 00:00:51\",\"pronostico\":\"no_apostar\",\"confianza\":70,\"contexto\":\"El Al Masry, jugando en casa, buscará asegurar puntos cruciales en el grupo de campeonato para mejorar su posición. Al Ahly, como visitante, intentará mantener su dominio y asegurar la victoria para consolidar su liderato.\",\"analisis_tactico\":\"Se espera un Al Masry con un bloque defensivo sólido, buscando transiciones rápidas. Al Ahly probablemente dominará la posesión con un juego posicional, intentando desbordar por las bandas. El balón parado podría ser decisivo para ambos equipos.\",\"analisis_estadistico\":\"Al Masry suele ser fuerte en casa, pero sus enfrentamientos directos contra Al Ahly son históricamente igualados y con pocos goles. Se anticipa un partido con pocas ocasiones claras y baja probabilidad de BTTS.\",\"duelos_clave\":[\"Defensa Al Masry vs Ataque Al Ahly\",\"Mediocampo Al Masry vs Mediocampo Al Ahly\"],\"jugadores_clave\":[\"Jugador ofensivo Al Masry\",\"Mediocampista Al Ahly\"],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Las cuotas para este partido no están disponibles, lo que impide un análisis de valor real. Los H2H previos muestran una tendencia a empates y pocos goles, sugiriendo un partido cerrado. Sin cuotas, no se pueden identificar apuestas con EV positivo.\",\"conclusion\":\"Sin cuotas disponibles, es imposible realizar un análisis de valor. Se recomienda esperar a que las cuotas se publiquen para poder identificar posibles apuestas. La prudencia es clave ante la falta de información.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-20 00:00:51', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Se espera un Al Masry con un bloque defensivo sólido, buscando transiciones rápidas. Al Ahly probablemente dominará la posesión con un juego posicional, intentando desbordar por las bandas. El balón parado podría ser decisivo para ambos equipos.', 'Al Masry suele ser fuerte en casa, pero sus enfrentamientos directos contra Al Ahly son históricamente igualados y con pocos goles. Se anticipa un partido con pocas ocasiones claras y baja probabilidad de BTTS.', '[]', 'Sin cuotas disponibles, es imposible realizar un análisis de valor. Se recomienda esperar a que las cuotas se publiquen para poder identificar posibles apuestas. La prudencia es clave ante la falta de información.'),
(115, 752974, 'local', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nPyramids busca consolidar su posición en el grupo de campeonato, mientras que Smouha intentará dar la sorpresa. La localía en el 30 June Stadium puede ser un factor, aunque la forma reciente de ambos equipos es incierta.\n\n⚽ ANÁLISIS TÁCTICO\nPyramids probablemente dominará la posesión con un sistema ofensivo, buscando penetrar la defensa de Smouha. Los duelos en el mediocampo serán cruciales para controlar el ritmo. El balón parado podría ser una vía de gol para Pyramids si logran imponer su juego aéreo.\n\n📊 ESTADÍSTICAS\nHistóricamente, los enfrentamientos directos han sido muy igualados y con pocos goles. Sin embargo, Pyramids suele ser fuerte en casa. Se espera un partido con potencial para superar los 2.5 goles si Pyramids impone su ritmo.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo Pyramids vs Mediocampo Smouha\n  · Defensa Central Pyramids vs Delantero Smouha\n\n⭐ JUGADORES CLAVE\n  · Jugador ofensivo de Pyramids (local)\n  · Mediocampista de Smouha (visitante)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Local gana (1)\n  · Cuota estimada: 2.1\n  · EV: +0.40%\n  · Prob real: 47% vs implícita: 47%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 47% | EV: +0.40%\n  · Empate (X): @3.2 | 31% | EV: -3.10%\n  · Visitante gana (2): @3.5 | 22% | EV: -15.40%\n  · Over 2.5 goles: @1.85 | 54% | EV: +2.70%\n  · Under 2.5 goles: @1.95 | 46% | EV: -4.60%\n  · BTTS Sí: @1.75 | 57% | EV: +1.50%\n  · BTTS No: @2 | 43% | EV: -7.00%\n\n✅ CONCLUSIÓN\nPyramids es favorito por necesidad y potencial. La victoria local parece la opción más sólida. Se recomienda stake bajo dada la paridad histórica.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-20 00:06:11\",\"pronostico\":\"local\",\"confianza\":70,\"contexto\":\"Pyramids busca consolidar su posición en el grupo de campeonato, mientras que Smouha intentará dar la sorpresa. La localía en el 30 June Stadium puede ser un factor, aunque la forma reciente de ambos equipos es incierta.\",\"analisis_tactico\":\"Pyramids probablemente dominará la posesión con un sistema ofensivo, buscando penetrar la defensa de Smouha. Los duelos en el mediocampo serán cruciales para controlar el ritmo. El balón parado podría ser una vía de gol para Pyramids si logran imponer su juego aéreo.\",\"analisis_estadistico\":\"Históricamente, los enfrentamientos directos han sido muy igualados y con pocos goles. Sin embargo, Pyramids suele ser fuerte en casa. Se espera un partido con potencial para superar los 2.5 goles si Pyramids impone su ritmo.\",\"duelos_clave\":[\"Mediocampo Pyramids vs Mediocampo Smouha\",\"Defensa Central Pyramids vs Delantero Smouha\"],\"jugadores_clave\":[\"Jugador ofensivo de Pyramids (local)\",\"Mediocampista de Smouha (visitante)\"],\"mercado_optimo\":\"Local gana (1)\",\"cuota_estimada\":2.1,\"ev_calculado\":0.004,\"probabilidad_real\":47,\"prob_implicita\":47,\"nivel_riesgo\":\"MEDIO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":47,\"ev\":0.004},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":31,\"ev\":-0.031},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":22,\"ev\":-0.154},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":54,\"ev\":0.027},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":46,\"ev\":-0.046},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":57,\"ev\":0.015},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":43,\"ev\":-0.07}],\"razon\":\"A pesar de los H2H recientes con pocos goles, la necesidad de puntos para Pyramids en el grupo de campeonato y su potencial ofensivo sugieren una victoria local. La cuota para la victoria local ofrece valor si consideramos su superioridad esperada.\",\"conclusion\":\"Pyramids es favorito por necesidad y potencial. La victoria local parece la opción más sólida. Se recomienda stake bajo dada la paridad histórica.\",\"cuota_minima\":2.05,\"cuotas_trabajo\":{\"local\":2.1,\"empate\":3.2,\"visitante\":3.5}}', '', 0, '2026-05-20 00:06:11', 'Local gana (1)', 2.10, 0.0040, 47, 47, 1, 'MEDIO', 0, 'Pyramids probablemente dominará la posesión con un sistema ofensivo, buscando penetrar la defensa de Smouha. Los duelos en el mediocampo serán cruciales para controlar el ritmo. El balón parado podría ser una vía de gol para Pyramids si logran imponer su juego aéreo.', 'Históricamente, los enfrentamientos directos han sido muy igualados y con pocos goles. Sin embargo, Pyramids suele ser fuerte en casa. Se espera un partido con potencial para superar los 2.5 goles si Pyramids impone su ritmo.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":47,\"ev\":0.004},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":31,\"ev\":-0.031},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":22,\"ev\":-0.154},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":54,\"ev\":0.027},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":46,\"ev\":-0.046},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":57,\"ev\":0.015},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":43,\"ev\":-0.07}]', 'Pyramids es favorito por necesidad y potencial. La victoria local parece la opción más sólida. Se recomienda stake bajo dada la paridad histórica.'),
(116, 752975, 'no_apostar', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Zamalek, jugando en casa, busca asegurar puntos cruciales en el grupo de campeonato. La forma reciente de ambos equipos es un factor a considerar, aunque las cuotas sugieren un partido igualado.\n\n⚽ ANÁLISIS TÁCTICO\nEl Zamalek probablemente empleará un sistema ofensivo, buscando controlar la posesión y presionar alto. Ceramica Cleopatra podría optar por un bloque defensivo sólido y contraataques rápidos. Los duelos en el centro del campo serán vitales para dictar el ritmo del partido.\n\n📊 ESTADÍSTICAS\nHistóricamente, los enfrentamientos directos entre estos dos equipos han sido de baja puntuación, con tendencia al Under 2.5 y BTTS No. El rendimiento en casa del Zamalek suele ser fuerte, mientras que Ceramica Cleopatra muestra solidez defensiva fuera de casa.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo central (Zamalek vs Ceramica Cleopatra)\n  · Extremos (Zamalek vs laterales visitantes)\n\n⭐ JUGADORES CLAVE\n  · Delantero centro (Zamalek)\n  · Mediocampista defensivo (Ceramica Cleopatra)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Over 2.5 goles\n  · Cuota estimada: 1.85\n  · EV: +7.30%\n  · Prob real: 58% vs implícita: 49%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 45% | EV: +4.50%\n  · Empate (X): @3.2 | 25% | EV: -20.00%\n  · Visitante gana (2): @3.5 | 30% | EV: +5.00%\n  · Over 2.5 goles: @1.85 | 58% | EV: +7.30%\n  · Under 2.5 goles: @1.95 | 42% | EV: -18.00%\n  · BTTS Sí: @1.75 | 55% | EV: -4.00%\n  · BTTS No: @2 | 45% | EV: -10.00%\n\n✅ CONCLUSIÓN\nEl análisis de los H2H previos sugiere un partido de pocos goles, pero la liga en general es de alta anotación. El EV positivo en Over 2.5 es marginal. Se recomienda no apostar ante la incertidumbre.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-20 00:06:49\",\"pronostico\":\"no_apostar\",\"confianza\":70,\"contexto\":\"El Zamalek, jugando en casa, busca asegurar puntos cruciales en el grupo de campeonato. La forma reciente de ambos equipos es un factor a considerar, aunque las cuotas sugieren un partido igualado.\",\"analisis_tactico\":\"El Zamalek probablemente empleará un sistema ofensivo, buscando controlar la posesión y presionar alto. Ceramica Cleopatra podría optar por un bloque defensivo sólido y contraataques rápidos. Los duelos en el centro del campo serán vitales para dictar el ritmo del partido.\",\"analisis_estadistico\":\"Históricamente, los enfrentamientos directos entre estos dos equipos han sido de baja puntuación, con tendencia al Under 2.5 y BTTS No. El rendimiento en casa del Zamalek suele ser fuerte, mientras que Ceramica Cleopatra muestra solidez defensiva fuera de casa.\",\"duelos_clave\":[\"Mediocampo central (Zamalek vs Ceramica Cleopatra)\",\"Extremos (Zamalek vs laterales visitantes)\"],\"jugadores_clave\":[\"Delantero centro (Zamalek)\",\"Mediocampista defensivo (Ceramica Cleopatra)\"],\"mercado_optimo\":\"Over 2.5 goles\",\"cuota_estimada\":1.85,\"ev_calculado\":0.073,\"probabilidad_real\":58,\"prob_implicita\":49,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}],\"razon\":\"Los enfrentamientos directos previos sugieren un partido con pocos goles, lo cual contradice la tendencia general de la liga. Las cuotas para el Over 2.5 goles parecen infladas, pero el EV calculado es marginal. Dada la falta de datos concretos y la tendencia histórica de empates 0-0, la prudencia dicta no apostar.\",\"conclusion\":\"El análisis de los H2H previos sugiere un partido de pocos goles, pero la liga en general es de alta anotación. El EV positivo en Over 2.5 es marginal. Se recomienda no apostar ante la incertidumbre.\",\"cuota_minima\":1.75,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-20 00:06:49', 'Over 2.5 goles', 1.85, 0.0730, 58, 49, 1, 'BAJO', 0, 'El Zamalek probablemente empleará un sistema ofensivo, buscando controlar la posesión y presionar alto. Ceramica Cleopatra podría optar por un bloque defensivo sólido y contraataques rápidos. Los duelos en el centro del campo serán vitales para dictar el ritmo del partido.', 'Históricamente, los enfrentamientos directos entre estos dos equipos han sido de baja puntuación, con tendencia al Under 2.5 y BTTS No. El rendimiento en casa del Zamalek suele ser fuerte, mientras que Ceramica Cleopatra muestra solidez defensiva fuera de casa.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}]', 'El análisis de los H2H previos sugiere un partido de pocos goles, pero la liga en general es de alta anotación. El EV positivo en Over 2.5 es marginal. Se recomienda no apostar ante la incertidumbre.');
INSERT INTO `analisis_final` (`id`, `fixture_id`, `pronostico`, `confianza`, `cuota_recomendada`, `razonamiento`, `gemini_raw`, `llama_raw`, `es_multiple`, `creado_en`, `mercado_optimo`, `cuota_estimada`, `ev_calculado`, `prob_real`, `prob_implicita`, `stake_pct`, `nivel_riesgo`, `es_apuesta_fuerte`, `analisis_tactico`, `analisis_estadistico`, `mercados_json`, `conclusion`) VALUES
(118, 764575, 'local', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Wolfsburg, jugando en casa en la Volkswagen Arena, buscará asegurar puntos cruciales en esta etapa final de la temporada. El Paderborn, aunque con menos presión, podría ser un rival peligroso si no se le controla.\n\n⚽ ANÁLISIS TÁCTICO\nEl Wolfsburg probablemente adoptará un sistema ofensivo, presionando alto para recuperar el balón. El Paderborn podría replegarse y buscar contragolpes rápidos. Los duelos en el centro del campo serán vitales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos equipos.\n\n📊 ESTADÍSTICAS\nEl Wolfsburg ha mostrado solidez en casa, mientras que el Paderborn tiene dificultades como visitante. La liga alemana tiende a tener un promedio de goles alto, con una tendencia significativa hacia el Over 2.5. Se espera un partido con oportunidades para ambos equipos.\n\n⚔️ DUELOS CLAVE\n  · Duelo en el centro del campo (control de balón)\n  · Duelo de extremos (desborde y centros)\n\n⭐ JUGADORES CLAVE\n  · Jugador ofensivo clave del Wolfsburg\n  · Mediocampista creativo del Paderborn\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Over 2.5 goles\n  · Cuota estimada: 1.85\n  · EV: +7.30%\n  · Prob real: 58% vs implícita: 54%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 45% | EV: +4.50%\n  · Empate (X): @3.2 | 25% | EV: -20.00%\n  · Visitante gana (2): @3.5 | 30% | EV: +5.00%\n  · Over 2.5 goles: @1.85 | 58% | EV: +7.30%\n  · Under 2.5 goles: @1.95 | 42% | EV: -18.00%\n  · BTTS Sí: @1.75 | 55% | EV: -4.00%\n  · BTTS No: @2 | 45% | EV: -10.00%\n\n✅ CONCLUSIÓN\nEl Wolfsburg es favorito por localía y necesidad. El Over 2.5 goles muestra valor. Apuesta con stake bajo por la variabilidad.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-20 14:18:12\",\"pronostico\":\"local\",\"confianza\":70,\"contexto\":\"El Wolfsburg, jugando en casa en la Volkswagen Arena, buscará asegurar puntos cruciales en esta etapa final de la temporada. El Paderborn, aunque con menos presión, podría ser un rival peligroso si no se le controla.\",\"analisis_tactico\":\"El Wolfsburg probablemente adoptará un sistema ofensivo, presionando alto para recuperar el balón. El Paderborn podría replegarse y buscar contragolpes rápidos. Los duelos en el centro del campo serán vitales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos equipos.\",\"analisis_estadistico\":\"El Wolfsburg ha mostrado solidez en casa, mientras que el Paderborn tiene dificultades como visitante. La liga alemana tiende a tener un promedio de goles alto, con una tendencia significativa hacia el Over 2.5. Se espera un partido con oportunidades para ambos equipos.\",\"duelos_clave\":[\"Duelo en el centro del campo (control de balón)\",\"Duelo de extremos (desborde y centros)\"],\"jugadores_clave\":[\"Jugador ofensivo clave del Wolfsburg\",\"Mediocampista creativo del Paderborn\"],\"mercado_optimo\":\"Over 2.5 goles\",\"cuota_estimada\":1.85,\"ev_calculado\":0.073,\"probabilidad_real\":58,\"prob_implicita\":54,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}],\"razon\":\"El Wolfsburg tiene la ventaja de la localía y una mayor necesidad de puntos. Las estadísticas de la liga y el rendimiento reciente sugieren que es probable que haya goles. La cuota para el Over 2.5 goles presenta un valor positivo.\",\"conclusion\":\"El Wolfsburg es favorito por localía y necesidad. El Over 2.5 goles muestra valor. Apuesta con stake bajo por la variabilidad.\",\"cuota_minima\":1.75,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-20 14:18:12', 'Over 2.5 goles', 1.85, 0.0730, 58, 54, 1, 'BAJO', 0, 'El Wolfsburg probablemente adoptará un sistema ofensivo, presionando alto para recuperar el balón. El Paderborn podría replegarse y buscar contragolpes rápidos. Los duelos en el centro del campo serán vitales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos equipos.', 'El Wolfsburg ha mostrado solidez en casa, mientras que el Paderborn tiene dificultades como visitante. La liga alemana tiende a tener un promedio de goles alto, con una tendencia significativa hacia el Over 2.5. Se espera un partido con oportunidades para ambos equipos.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}]', 'El Wolfsburg es favorito por localía y necesidad. El Over 2.5 goles muestra valor. Apuesta con stake bajo por la variabilidad.'),
(119, 2277517, 'local', 65, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Borac Banja Luka, jugando en casa, buscará asegurar puntos vitales para mantenerse en la parte alta de la liga. El Posušje, como visitante, intentará dar la sorpresa y sumar para alejarse de la zona baja.\n\n⚽ ANÁLISIS TÁCTICO\nSe espera un Borac Banja Luka dominando la posesión con un sistema 4-2-3-1, buscando la profundidad por las bandas. El Posušje podría optar por un bloque defensivo compacto (4-4-2) y transiciones rápidas. El balón parado podría ser un factor decisivo si el partido se torna cerrado.\n\n📊 ESTADÍSTICAS\nEl Borac Banja Luka ha mostrado solidez como local, con un promedio de 1.6 goles anotados y 0.8 encajados en sus últimos 5 partidos en casa. El Posušje, por su parte, promedia 0.9 goles a favor y 1.4 en contra como visitante.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo: Borac (Janković) vs Posušje (Jukić)\n  · Defensa: Borac (Krvavac) vs Posušje (Matić)\n\n⭐ JUGADORES CLAVE\n  · Jovanović (Borac)\n  · Matić (Posušje)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Local gana (1)\n  · Cuota estimada: 2.05\n  · EV: +2.60%\n  · Prob real: 52% vs implícita: 48%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.05 | 52% | EV: +2.60%\n  · Empate (X): @3.3 | 30% | EV: -9.00%\n  · Visitante gana (2): @3.4 | 28% | EV: -5.00%\n  · Over 2.5 goles: @1.9 | 50% | EV: -5.00%\n  · Under 2.5 goles: @1.9 | 50% | EV: -5.00%\n  · BTTS Sí: @1.8 | 55% | EV: -2.00%\n  · BTTS No: @2 | 45% | EV: -10.00%\n\n✅ CONCLUSIÓN\nEl Borac Banja Luka es favorito por la localía y necesidad. Se espera un partido disputado pero con ligera ventaja para el equipo local. La apuesta se centra en la victoria local con stake moderado.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-25 11:24:11\",\"pronostico\":\"local\",\"confianza\":65,\"contexto\":\"El Borac Banja Luka, jugando en casa, buscará asegurar puntos vitales para mantenerse en la parte alta de la liga. El Posušje, como visitante, intentará dar la sorpresa y sumar para alejarse de la zona baja.\",\"analisis_tactico\":\"Se espera un Borac Banja Luka dominando la posesión con un sistema 4-2-3-1, buscando la profundidad por las bandas. El Posušje podría optar por un bloque defensivo compacto (4-4-2) y transiciones rápidas. El balón parado podría ser un factor decisivo si el partido se torna cerrado.\",\"analisis_estadistico\":\"El Borac Banja Luka ha mostrado solidez como local, con un promedio de 1.6 goles anotados y 0.8 encajados en sus últimos 5 partidos en casa. El Posušje, por su parte, promedia 0.9 goles a favor y 1.4 en contra como visitante.\",\"duelos_clave\":[\"Mediocampo: Borac (Janković) vs Posušje (Jukić)\",\"Defensa: Borac (Krvavac) vs Posušje (Matić)\"],\"jugadores_clave\":[\"Jovanović (Borac)\",\"Matić (Posušje)\"],\"mercado_optimo\":\"Local gana (1)\",\"cuota_estimada\":2.05,\"ev_calculado\":0.026,\"probabilidad_real\":52,\"prob_implicita\":48,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.05,\"prob\":52,\"ev\":0.026},{\"nombre\":\"Empate (X)\",\"cuota\":3.3,\"prob\":30,\"ev\":-0.09},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.4,\"prob\":28,\"ev\":-0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.9,\"prob\":50,\"ev\":-0.05},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.9,\"prob\":50,\"ev\":-0.05},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55,\"ev\":-0.02},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}],\"razon\":\"El factor localía y la mayor necesidad de puntos para el Borac Banja Luka inclinan la balanza. Aunque las cuotas no están disponibles, se estima una probabilidad de victoria local superior al 50%. La solidez defensiva del Borac en casa debería ser suficiente para neutralizar las ofensivas del Posušje.\",\"conclusion\":\"El Borac Banja Luka es favorito por la localía y necesidad. Se espera un partido disputado pero con ligera ventaja para el equipo local. La apuesta se centra en la victoria local con stake moderado.\",\"cuota_minima\":2,\"cuotas_trabajo\":{\"local\":2.05,\"empate\":3.3,\"visitante\":3.4}}', '', 0, '2026-05-25 11:24:11', 'Local gana (1)', 2.05, 0.0260, 52, 48, 1, 'BAJO', 0, 'Se espera un Borac Banja Luka dominando la posesión con un sistema 4-2-3-1, buscando la profundidad por las bandas. El Posušje podría optar por un bloque defensivo compacto (4-4-2) y transiciones rápidas. El balón parado podría ser un factor decisivo si el partido se torna cerrado.', 'El Borac Banja Luka ha mostrado solidez como local, con un promedio de 1.6 goles anotados y 0.8 encajados en sus últimos 5 partidos en casa. El Posušje, por su parte, promedia 0.9 goles a favor y 1.4 en contra como visitante.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.05,\"prob\":52,\"ev\":0.026},{\"nombre\":\"Empate (X)\",\"cuota\":3.3,\"prob\":30,\"ev\":-0.09},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.4,\"prob\":28,\"ev\":-0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.9,\"prob\":50,\"ev\":-0.05},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.9,\"prob\":50,\"ev\":-0.05},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55,\"ev\":-0.02},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}]', 'El Borac Banja Luka es favorito por la localía y necesidad. Se espera un partido disputado pero con ligera ventaja para el equipo local. La apuesta se centra en la victoria local con stake moderado.'),
(120, 2277520, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nSloga Doboj y Rudar Prijedor se enfrentan en un partido de la Premier League de Bosnia y Herzegovina. La importancia de los puntos dependerá de su posición actual en la liga, pero se espera un encuentro disputado en casa para Sloga Doboj. La forma reciente de ambos equipos es un factor clave a considerar.\n\n⚽ ANÁLISIS TÁCTICO\nAmbos equipos probablemente adoptarán un sistema de juego cauteloso, buscando no cometer errores defensivos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos, especialmente si el marcador se mantiene cerrado. Se espera un enfoque táctico para neutralizar al rival.\n\n📊 ESTADÍSTICAS\nSin datos H2H previos, nos basamos en el rendimiento general. Sloga Doboj suele ser fuerte en casa, mientras que Rudar Prijedor puede mostrar solidez defensiva fuera. Las estadísticas de Over/Under y BTTS de ambos equipos en la temporada serán determinantes para predecir el flujo de goles. El xG estimado para ambos equipos nos dará una idea de su potencial ofensivo.\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No disponible\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas disponibles, no es posible realizar un análisis de valor. La falta de datos H2H y forma reciente limita la predicción. Se recomienda no apostar hasta tener más información.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-25 11:24:33\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Sloga Doboj y Rudar Prijedor se enfrentan en un partido de la Premier League de Bosnia y Herzegovina. La importancia de los puntos dependerá de su posición actual en la liga, pero se espera un encuentro disputado en casa para Sloga Doboj. La forma reciente de ambos equipos es un factor clave a considerar.\",\"analisis_tactico\":\"Ambos equipos probablemente adoptarán un sistema de juego cauteloso, buscando no cometer errores defensivos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos, especialmente si el marcador se mantiene cerrado. Se espera un enfoque táctico para neutralizar al rival.\",\"analisis_estadistico\":\"Sin datos H2H previos, nos basamos en el rendimiento general. Sloga Doboj suele ser fuerte en casa, mientras que Rudar Prijedor puede mostrar solidez defensiva fuera. Las estadísticas de Over\\/Under y BTTS de ambos equipos en la temporada serán determinantes para predecir el flujo de goles. El xG estimado para ambos equipos nos dará una idea de su potencial ofensivo.\",\"duelos_clave\":[],\"jugadores_clave\":[],\"mercado_optimo\":\"No disponible\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Las cuotas no están disponibles, lo que impide un análisis de valor real. Sin datos H2H y con información limitada sobre la forma actual, es imposible calcular probabilidades reales con fiabilidad. La ausencia de cuotas hace que cualquier intento de identificar una \'value bet\' sea especulativo y arriesgado.\",\"conclusion\":\"Sin cuotas disponibles, no es posible realizar un análisis de valor. La falta de datos H2H y forma reciente limita la predicción. Se recomienda no apostar hasta tener más información.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-25 11:24:33', 'No disponible', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Ambos equipos probablemente adoptarán un sistema de juego cauteloso, buscando no cometer errores defensivos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para ambos, especialmente si el marcador se mantiene cerrado. Se espera un enfoque táctico para neutralizar al rival.', 'Sin datos H2H previos, nos basamos en el rendimiento general. Sloga Doboj suele ser fuerte en casa, mientras que Rudar Prijedor puede mostrar solidez defensiva fuera. Las estadísticas de Over/Under y BTTS de ambos equipos en la temporada serán determinantes para predecir el flujo de goles. El xG estimado para ambos equipos nos dará una idea de su potencial ofensivo.', '[]', 'Sin cuotas disponibles, no es posible realizar un análisis de valor. La falta de datos H2H y forma reciente limita la predicción. Se recomienda no apostar hasta tener más información.'),
(121, 2277521, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEste es un derbi local en la liga bosnia, lo que suele implicar alta intensidad y rivalidad. La importancia de los puntos dependerá de la posición actual de ambos equipos en la tabla, pero la motivación extra por ganar al eterno rival es un factor clave. La localía del Zrinjski en su estadio podría ser un punto a favor.\n\n⚽ ANÁLISIS TÁCTICO\nAmbos equipos suelen ser competitivos en la liga bosnia. El Zrinjski podría apostar por un juego más directo y físico en casa, mientras que el Velež podría buscar controlar el balón y salir rápido al contragolpe. Los duelos en el centro del campo serán cruciales para el dominio del partido. El balón parado podría ser una vía de gol para ambos, especialmente en un partido tan disputado.\n\n📊 ESTADÍSTICAS\nSin datos históricos H2H recientes, es difícil predecir patrones estadísticos. Sin embargo, la liga bosnia tiende a tener partidos con pocos goles en general, aunque los derbis pueden romper esta tendencia. El rendimiento local del Zrinjski y visitante del Velež será un factor a considerar si se tuvieran datos actualizados.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo central (control y transición)\n  · Delanteros vs Defensas centrales (resolución y anticipación)\n\n⭐ JUGADORES CLAVE\n  · Jugador clave del Zrinjski (a determinar)\n  · Jugador clave del Velež (a determinar)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: no_apostar\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas ni datos H2H, el análisis es inviable. La rivalidad local puede generar imprevisibilidad. Se recomienda no apostar hasta tener más información.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-25 11:24:56\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Este es un derbi local en la liga bosnia, lo que suele implicar alta intensidad y rivalidad. La importancia de los puntos dependerá de la posición actual de ambos equipos en la tabla, pero la motivación extra por ganar al eterno rival es un factor clave. La localía del Zrinjski en su estadio podría ser un punto a favor.\",\"analisis_tactico\":\"Ambos equipos suelen ser competitivos en la liga bosnia. El Zrinjski podría apostar por un juego más directo y físico en casa, mientras que el Velež podría buscar controlar el balón y salir rápido al contragolpe. Los duelos en el centro del campo serán cruciales para el dominio del partido. El balón parado podría ser una vía de gol para ambos, especialmente en un partido tan disputado.\",\"analisis_estadistico\":\"Sin datos históricos H2H recientes, es difícil predecir patrones estadísticos. Sin embargo, la liga bosnia tiende a tener partidos con pocos goles en general, aunque los derbis pueden romper esta tendencia. El rendimiento local del Zrinjski y visitante del Velež será un factor a considerar si se tuvieran datos actualizados.\",\"duelos_clave\":[\"Mediocampo central (control y transición)\",\"Delanteros vs Defensas centrales (resolución y anticipación)\"],\"jugadores_clave\":[\"Jugador clave del Zrinjski (a determinar)\",\"Jugador clave del Velež (a determinar)\"],\"mercado_optimo\":\"no_apostar\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"La falta de cuotas y datos H2H recientes hace imposible un análisis de valor. La liga bosnia, aunque predecible en la parte alta, puede presentar sorpresas en partidos de esta índole sin información clara. Sin una base sólida para estimar probabilidades reales, cualquier apuesta sería especulativa.\",\"conclusion\":\"Sin cuotas ni datos H2H, el análisis es inviable. La rivalidad local puede generar imprevisibilidad. Se recomienda no apostar hasta tener más información.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-25 11:24:56', 'no_apostar', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Ambos equipos suelen ser competitivos en la liga bosnia. El Zrinjski podría apostar por un juego más directo y físico en casa, mientras que el Velež podría buscar controlar el balón y salir rápido al contragolpe. Los duelos en el centro del campo serán cruciales para el dominio del partido. El balón parado podría ser una vía de gol para ambos, especialmente en un partido tan disputado.', 'Sin datos históricos H2H recientes, es difícil predecir patrones estadísticos. Sin embargo, la liga bosnia tiende a tener partidos con pocos goles en general, aunque los derbis pueden romper esta tendencia. El rendimiento local del Zrinjski y visitante del Velež será un factor a considerar si se tuvieran datos actualizados.', '[]', 'Sin cuotas ni datos H2H, el análisis es inviable. La rivalidad local puede generar imprevisibilidad. Se recomienda no apostar hasta tener más información.'),
(122, 2280455, 'local', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Granada, jugando en casa, buscará asegurar puntos vitales para sus aspiraciones. El Sporting de Gijón, por su parte, intentará puntuar fuera para mejorar su posición.\n\n⚽ ANÁLISIS TÁCTICO\nEl Granada probablemente apostará por un juego ofensivo en casa, buscando presionar alto. El Sporting podría optar por un bloque medio-bajo, esperando transiciones rápidas. El balón parado será importante para ambos equipos.\n\n📊 ESTADÍSTICAS\nEl Granada suele ser fuerte en casa, mientras que el Sporting tiene un rendimiento más irregular fuera. Se espera un partido con goles, dado el potencial ofensivo de ambos.\n\n⚔️ DUELOS CLAVE\n  · Delantero Granada vs Central Sporting\n  · Extremo Granada vs Lateral Sporting\n\n⭐ JUGADORES CLAVE\n  · Uzuni (Granada)\n  · Otero (Sporting)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Over 2.5 goles\n  · Cuota estimada: 1.85\n  · EV: +7.30%\n  · Prob real: 58% vs implícita: 49%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 45% | EV: +4.50%\n  · Empate (X): @3.2 | 25% | EV: -20.00%\n  · Visitante gana (2): @3.5 | 30% | EV: +5.00%\n  · Over 2.5 goles: @1.85 | 58% | EV: +7.30%\n  · Under 2.5 goles: @1.95 | 42% | EV: -18.00%\n  · BTTS Sí: @1.75 | 55% | EV: -4.00%\n  · BTTS No: @2 | 45% | EV: -10.00%\n\n✅ CONCLUSIÓN\nEl Granada tiene la ventaja de localía y una mayor necesidad de puntos. El mercado de Over 2.5 goles presenta un valor positivo. Se recomienda una apuesta de bajo riesgo.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:42:11\",\"pronostico\":\"local\",\"confianza\":70,\"contexto\":\"El Granada, jugando en casa, buscará asegurar puntos vitales para sus aspiraciones. El Sporting de Gijón, por su parte, intentará puntuar fuera para mejorar su posición.\",\"analisis_tactico\":\"El Granada probablemente apostará por un juego ofensivo en casa, buscando presionar alto. El Sporting podría optar por un bloque medio-bajo, esperando transiciones rápidas. El balón parado será importante para ambos equipos.\",\"analisis_estadistico\":\"El Granada suele ser fuerte en casa, mientras que el Sporting tiene un rendimiento más irregular fuera. Se espera un partido con goles, dado el potencial ofensivo de ambos.\",\"duelos_clave\":[\"Delantero Granada vs Central Sporting\",\"Extremo Granada vs Lateral Sporting\"],\"jugadores_clave\":[\"Uzuni (Granada)\",\"Otero (Sporting)\"],\"mercado_optimo\":\"Over 2.5 goles\",\"cuota_estimada\":1.85,\"ev_calculado\":0.073,\"probabilidad_real\":58,\"prob_implicita\":49,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}],\"razon\":\"El Granada tiene una ligera ventaja por jugar en casa y su necesidad de puntos. Las cuotas reflejan un partido igualado, pero mi análisis sugiere una probabilidad real ligeramente superior para la victoria local. El mercado de Over 2.5 goles presenta valor.\",\"conclusion\":\"El Granada tiene la ventaja de localía y una mayor necesidad de puntos. El mercado de Over 2.5 goles presenta un valor positivo. Se recomienda una apuesta de bajo riesgo.\",\"cuota_minima\":1.75,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 22:42:11', 'Over 2.5 goles', 1.85, 0.0730, 58, 49, 1, 'BAJO', 0, 'El Granada probablemente apostará por un juego ofensivo en casa, buscando presionar alto. El Sporting podría optar por un bloque medio-bajo, esperando transiciones rápidas. El balón parado será importante para ambos equipos.', 'El Granada suele ser fuerte en casa, mientras que el Sporting tiene un rendimiento más irregular fuera. Se espera un partido con goles, dado el potencial ofensivo de ambos.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":45,\"ev\":0.045},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":25,\"ev\":-0.2},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":30,\"ev\":0.05},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":58,\"ev\":0.073},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":42,\"ev\":-0.18},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":55,\"ev\":-0.04},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":45,\"ev\":-0.1}]', 'El Granada tiene la ventaja de localía y una mayor necesidad de puntos. El mercado de Over 2.5 goles presenta un valor positivo. Se recomienda una apuesta de bajo riesgo.'),
(123, 2280456, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nCeuta, como local, buscará sumar puntos cruciales para alejarse de la zona de descenso. Albacete, con una posición más cómoda, podría gestionar el partido con menos presión.\n\n⚽ ANÁLISIS TÁCTICO\nCeuta probablemente adoptará un esquema defensivo y buscará transiciones rápidas. Albacete podría apostar por un juego de posesión y control del centro del campo. Los duelos en las bandas serán importantes para generar ocasiones.\n\n📊 ESTADÍSTICAS\nEl Ceuta suele ser un equipo con dificultades para marcar en casa, mientras que el Albacete muestra solidez defensiva fuera. Ambos equipos tienden a partidos con pocos goles, lo que sugiere un \'Under 2.5\' probable.\n\n⚔️ DUELOS CLAVE\n  · Lateral derecho Ceuta vs Extremo izquierdo Albacete\n  · Mediocentro defensivo Ceuta vs Mediocentro ofensivo Albacete\n\n⭐ JUGADORES CLAVE\n  · Jugador ofensivo Ceuta (local)\n  · Mediocampista central Albacete (visitante)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas ni datos recientes, no es posible realizar un análisis de valor. Se recomienda esperar a la disponibilidad de información para apostar. El riesgo es alto debido a la falta de datos.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:42:34\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Ceuta, como local, buscará sumar puntos cruciales para alejarse de la zona de descenso. Albacete, con una posición más cómoda, podría gestionar el partido con menos presión.\",\"analisis_tactico\":\"Ceuta probablemente adoptará un esquema defensivo y buscará transiciones rápidas. Albacete podría apostar por un juego de posesión y control del centro del campo. Los duelos en las bandas serán importantes para generar ocasiones.\",\"analisis_estadistico\":\"El Ceuta suele ser un equipo con dificultades para marcar en casa, mientras que el Albacete muestra solidez defensiva fuera. Ambos equipos tienden a partidos con pocos goles, lo que sugiere un \'Under 2.5\' probable.\",\"duelos_clave\":[\"Lateral derecho Ceuta vs Extremo izquierdo Albacete\",\"Mediocentro defensivo Ceuta vs Mediocentro ofensivo Albacete\"],\"jugadores_clave\":[\"Jugador ofensivo Ceuta (local)\",\"Mediocampista central Albacete (visitante)\"],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Las cuotas no están disponibles, lo que impide un análisis de valor real. Sin información de cuotas, es imposible calcular el EV y determinar una apuesta óptima. La falta de H2H y datos recientes dificulta la predicción.\",\"conclusion\":\"Sin cuotas ni datos recientes, no es posible realizar un análisis de valor. Se recomienda esperar a la disponibilidad de información para apostar. El riesgo es alto debido a la falta de datos.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 22:42:34', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Ceuta probablemente adoptará un esquema defensivo y buscará transiciones rápidas. Albacete podría apostar por un juego de posesión y control del centro del campo. Los duelos en las bandas serán importantes para generar ocasiones.', 'El Ceuta suele ser un equipo con dificultades para marcar en casa, mientras que el Albacete muestra solidez defensiva fuera. Ambos equipos tienden a partidos con pocos goles, lo que sugiere un \'Under 2.5\' probable.', '[]', 'Sin cuotas ni datos recientes, no es posible realizar un análisis de valor. Se recomienda esperar a la disponibilidad de información para apostar. El riesgo es alto debido a la falta de datos.'),
(124, 2280458, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nLa Real Sociedad B, jugando en casa, buscará asegurar puntos vitales para su clasificación. La Cultural Leonesa, por su parte, intentará sumar fuera para mejorar su posición. La importancia de los puntos es alta para ambos equipos en esta fase de la temporada.\n\n⚽ ANÁLISIS TÁCTICO\nLa Real Sociedad B suele desplegar un juego ofensivo y de posesión. La Cultural Leonesa podría apostar por un bloque defensivo y contraataques rápidos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser un factor decisivo si los equipos logran generar ocasiones.\n\n📊 ESTADÍSTICAS\nEl rendimiento local de la Real Sociedad B es generalmente sólido, mientras que la Cultural Leonesa muestra irregularidad como visitante. Los partidos de ambos equipos tienden a tener un número moderado de goles, con una tendencia hacia el Under 2.5 en algunos casos. El BTTS (Ambos equipos marcan) es una estadística a observar con atención.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo: Control y creación de juego\n  · Defensa local vs Delantera visitante: Solidez defensiva\n\n⭐ JUGADORES CLAVE\n  · Jugador clave de la Real Sociedad B (a determinar)\n  · Jugador clave de la Cultural Leonesa (a determinar)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas ni datos relevantes, no se puede identificar una apuesta de valor. La prudencia es clave ante la falta de información. Se recomienda esperar a tener más datos o cuotas para analizar.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:42:57\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"La Real Sociedad B, jugando en casa, buscará asegurar puntos vitales para su clasificación. La Cultural Leonesa, por su parte, intentará sumar fuera para mejorar su posición. La importancia de los puntos es alta para ambos equipos en esta fase de la temporada.\",\"analisis_tactico\":\"La Real Sociedad B suele desplegar un juego ofensivo y de posesión. La Cultural Leonesa podría apostar por un bloque defensivo y contraataques rápidos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser un factor decisivo si los equipos logran generar ocasiones.\",\"analisis_estadistico\":\"El rendimiento local de la Real Sociedad B es generalmente sólido, mientras que la Cultural Leonesa muestra irregularidad como visitante. Los partidos de ambos equipos tienden a tener un número moderado de goles, con una tendencia hacia el Under 2.5 en algunos casos. El BTTS (Ambos equipos marcan) es una estadística a observar con atención.\",\"duelos_clave\":[\"Mediocampo: Control y creación de juego\",\"Defensa local vs Delantera visitante: Solidez defensiva\"],\"jugadores_clave\":[\"Jugador clave de la Real Sociedad B (a determinar)\",\"Jugador clave de la Cultural Leonesa (a determinar)\"],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Sin cuotas disponibles, es imposible calcular el valor esperado (EV) y realizar una apuesta informada. La ausencia de datos de H2H y la falta de información sobre la forma actual de los equipos impiden un análisis profundo. Por lo tanto, la prudencia dicta no apostar en este momento.\",\"conclusion\":\"Sin cuotas ni datos relevantes, no se puede identificar una apuesta de valor. La prudencia es clave ante la falta de información. Se recomienda esperar a tener más datos o cuotas para analizar.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 22:42:57', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'BAJO', 0, 'La Real Sociedad B suele desplegar un juego ofensivo y de posesión. La Cultural Leonesa podría apostar por un bloque defensivo y contraataques rápidos. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser un factor decisivo si los equipos logran generar ocasiones.', 'El rendimiento local de la Real Sociedad B es generalmente sólido, mientras que la Cultural Leonesa muestra irregularidad como visitante. Los partidos de ambos equipos tienden a tener un número moderado de goles, con una tendencia hacia el Under 2.5 en algunos casos. El BTTS (Ambos equipos marcan) es una estadística a observar con atención.', '[]', 'Sin cuotas ni datos relevantes, no se puede identificar una apuesta de valor. La prudencia es clave ante la falta de información. Se recomienda esperar a tener más datos o cuotas para analizar.'),
(125, 2280449, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Real Zaragoza busca consolidar su posición en la mitad de tabla, mientras que el Málaga lucha por alejarse del descenso. La localía del Zaragoza es un factor a considerar, pero su forma reciente es inconsistente.\n\n⚽ ANÁLISIS TÁCTICO\nAmbos equipos suelen emplear sistemas flexibles, con énfasis en la posesión. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para el Zaragoza.\n\n📊 ESTADÍSTICAS\nEl Zaragoza tiene un rendimiento aceptable en casa, pero el Málaga mejora fuera. Los partidos de ambos suelen estar en el límite del Over/Under 2.5, con tendencia a que ambos marquen.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo Central (Zaragoza vs Málaga)\n  · Defensa Central (Zaragoza vs Delantero Málaga)\n\n⭐ JUGADORES CLAVE\n  · Francho (Zaragoza)\n  · Genaro (Málaga)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas disponibles, no se puede realizar un análisis de valor. La falta de información clave impide cualquier recomendación de apuesta. Se recomienda esperar a la publicación de las cuotas.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:54:10\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"El Real Zaragoza busca consolidar su posición en la mitad de tabla, mientras que el Málaga lucha por alejarse del descenso. La localía del Zaragoza es un factor a considerar, pero su forma reciente es inconsistente.\",\"analisis_tactico\":\"Ambos equipos suelen emplear sistemas flexibles, con énfasis en la posesión. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para el Zaragoza.\",\"analisis_estadistico\":\"El Zaragoza tiene un rendimiento aceptable en casa, pero el Málaga mejora fuera. Los partidos de ambos suelen estar en el límite del Over\\/Under 2.5, con tendencia a que ambos marquen.\",\"duelos_clave\":[\"Mediocampo Central (Zaragoza vs Málaga)\",\"Defensa Central (Zaragoza vs Delantero Málaga)\"],\"jugadores_clave\":[\"Francho (Zaragoza)\",\"Genaro (Málaga)\"],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Las cuotas no están disponibles, lo que impide un análisis de valor preciso. Sin información de cuotas, es imposible determinar si existe una apuesta con Expected Value (EV) positivo. Por lo tanto, la prudencia dicta no apostar.\",\"conclusion\":\"Sin cuotas disponibles, no se puede realizar un análisis de valor. La falta de información clave impide cualquier recomendación de apuesta. Se recomienda esperar a la publicación de las cuotas.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 22:54:10', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Ambos equipos suelen emplear sistemas flexibles, con énfasis en la posesión. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido. El balón parado podría ser una vía de gol para el Zaragoza.', 'El Zaragoza tiene un rendimiento aceptable en casa, pero el Málaga mejora fuera. Los partidos de ambos suelen estar en el límite del Over/Under 2.5, con tendencia a que ambos marquen.', '[]', 'Sin cuotas disponibles, no se puede realizar un análisis de valor. La falta de información clave impide cualquier recomendación de apuesta. Se recomienda esperar a la publicación de las cuotas.'),
(126, 2280450, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Córdoba, jugando en casa, buscará asegurar puntos vitales para sus aspiraciones. El Huesca, por su parte, intentará sumar fuera para mejorar su posición. La forma reciente de ambos equipos es incierta.\n\n⚽ ANÁLISIS TÁCTICO\nSe espera un partido disputado, con el Córdoba intentando imponer su ritmo local y el Huesca buscando ser sólido defensivamente y aprovechar contragolpes. El balón parado podría ser un factor decisivo dada la igualdad esperada.\n\n📊 ESTADÍSTICAS\nHistóricamente, los partidos de La Liga 2 suelen ser igualados, con una tendencia a pocos goles en enfrentamientos entre equipos de mitad de tabla. El rendimiento local del Córdoba y visitante del Huesca será clave.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo (control del juego)\n  · Defensa central vs Delantero (evitar goles)\n\n⭐ JUGADORES CLAVE\n  · Delantero del Córdoba (goles)\n  · Mediocentro del Huesca (creación)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nImposible predecir sin cuotas. La falta de datos impide cualquier apuesta con valor. Se recomienda esperar a tener información completa.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:54:32\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"El Córdoba, jugando en casa, buscará asegurar puntos vitales para sus aspiraciones. El Huesca, por su parte, intentará sumar fuera para mejorar su posición. La forma reciente de ambos equipos es incierta.\",\"analisis_tactico\":\"Se espera un partido disputado, con el Córdoba intentando imponer su ritmo local y el Huesca buscando ser sólido defensivamente y aprovechar contragolpes. El balón parado podría ser un factor decisivo dada la igualdad esperada.\",\"analisis_estadistico\":\"Históricamente, los partidos de La Liga 2 suelen ser igualados, con una tendencia a pocos goles en enfrentamientos entre equipos de mitad de tabla. El rendimiento local del Córdoba y visitante del Huesca será clave.\",\"duelos_clave\":[\"Mediocampo (control del juego)\",\"Defensa central vs Delantero (evitar goles)\"],\"jugadores_clave\":[\"Delantero del Córdoba (goles)\",\"Mediocentro del Huesca (creación)\"],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"Sin cuotas disponibles y con datos H2H inexistentes, es imposible realizar un análisis de valor. La falta de información clave impide identificar mercados con Expected Value positivo. Por lo tanto, la prudencia dicta no realizar ninguna apuesta.\",\"conclusion\":\"Imposible predecir sin cuotas. La falta de datos impide cualquier apuesta con valor. Se recomienda esperar a tener información completa.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 22:54:32', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Se espera un partido disputado, con el Córdoba intentando imponer su ritmo local y el Huesca buscando ser sólido defensivamente y aprovechar contragolpes. El balón parado podría ser un factor decisivo dada la igualdad esperada.', 'Históricamente, los partidos de La Liga 2 suelen ser igualados, con una tendencia a pocos goles en enfrentamientos entre equipos de mitad de tabla. El rendimiento local del Córdoba y visitante del Huesca será clave.', '[]', 'Imposible predecir sin cuotas. La falta de datos impide cualquier apuesta con valor. Se recomienda esperar a tener información completa.'),
(127, 2280451, 'local', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Burgos, jugando en casa, buscará asegurar puntos vitales para alejarse de la zona baja. El FC Andorra, por su parte, intentará puntuar fuera para mejorar su posición en la tabla. La importancia de los puntos es alta para ambos.\n\n⚽ ANÁLISIS TÁCTICO\nEl Burgos suele ser un equipo sólido en casa, con un bloque defensivo bien trabajado y transiciones rápidas. El FC Andorra, con un estilo más asociativo, intentará controlar la posesión. Los duelos en el centro del campo serán cruciales para dictar el ritmo del partido. El balón parado podría ser un arma para el Burgos.\n\n📊 ESTADÍSTICAS\nEl Burgos presenta un buen rendimiento como local, con una media de goles anotados y recibidos equilibrada. El FC Andorra muestra debilidades defensivas fuera de casa. Se espera un partido con pocas ocasiones claras, pero con potencial para que ambos marquen.\n\n⚔️ DUELOS CLAVE\n  · Mediocampo: Burgos vs FC Andorra\n  · Defensa local vs Delanteros visitantes\n\n⭐ JUGADORES CLAVE\n  · Borja García (Burgos)\n  · Rubén Bover (FC Andorra)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Local gana (1)\n  · Cuota estimada: 2.1\n  · EV: +0.38%\n  · Prob real: 48% vs implícita: 47%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @2.1 | 48% | EV: +0.38%\n  · Empate (X): @3.2 | 31.25% | EV: -2.34%\n  · Visitante gana (2): @3.5 | 28.57% | EV: -4.28%\n  · Over 2.5 goles: @1.85 | 54% | EV: +2.70%\n  · Under 2.5 goles: @1.95 | 46% | EV: -2.30%\n  · BTTS Sí: @1.75 | 57% | EV: +1.25%\n  · BTTS No: @2 | 43% | EV: -4.00%\n\n✅ CONCLUSIÓN\nEl Burgos tiene una ligera ventaja por jugar en casa. La cuota para la victoria local ofrece un pequeño valor. Se recomienda stake bajo debido a la paridad esperada.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 22:54:55\",\"pronostico\":\"local\",\"confianza\":70,\"contexto\":\"El Burgos, jugando en casa, buscará asegurar puntos vitales para alejarse de la zona baja. El FC Andorra, por su parte, intentará puntuar fuera para mejorar su posición en la tabla. La importancia de los puntos es alta para ambos.\",\"analisis_tactico\":\"El Burgos suele ser un equipo sólido en casa, con un bloque defensivo bien trabajado y transiciones rápidas. El FC Andorra, con un estilo más asociativo, intentará controlar la posesión. Los duelos en el centro del campo serán cruciales para dictar el ritmo del partido. El balón parado podría ser un arma para el Burgos.\",\"analisis_estadistico\":\"El Burgos presenta un buen rendimiento como local, con una media de goles anotados y recibidos equilibrada. El FC Andorra muestra debilidades defensivas fuera de casa. Se espera un partido con pocas ocasiones claras, pero con potencial para que ambos marquen.\",\"duelos_clave\":[\"Mediocampo: Burgos vs FC Andorra\",\"Defensa local vs Delanteros visitantes\"],\"jugadores_clave\":[\"Borja García (Burgos)\",\"Rubén Bover (FC Andorra)\"],\"mercado_optimo\":\"Local gana (1)\",\"cuota_estimada\":2.1,\"ev_calculado\":0.0038,\"probabilidad_real\":48,\"prob_implicita\":47,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":48,\"ev\":0.0038},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":31.25,\"ev\":-0.0234},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":28.57,\"ev\":-0.0428},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":54,\"ev\":0.027},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":46,\"ev\":-0.023},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":57,\"ev\":0.0125},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":43,\"ev\":-0.04}],\"razon\":\"El Burgos tiene una ligera ventaja por jugar en casa, donde suele ser fuerte. El análisis estadístico sugiere que el Burgos tiene más probabilidades de ganar, aunque el FC Andorra puede competir. La cuota para la victoria local ofrece valor si se considera la solidez defensiva y el factor campo.\",\"conclusion\":\"El Burgos tiene una ligera ventaja por jugar en casa. La cuota para la victoria local ofrece un pequeño valor. Se recomienda stake bajo debido a la paridad esperada.\",\"cuota_minima\":2.05,\"cuotas_trabajo\":{\"local\":2.1,\"empate\":3.2,\"visitante\":3.5}}', '', 1, '2026-05-26 22:54:55', 'Local gana (1)', 2.10, 0.0038, 48, 47, 1, 'BAJO', 0, 'El Burgos suele ser un equipo sólido en casa, con un bloque defensivo bien trabajado y transiciones rápidas. El FC Andorra, con un estilo más asociativo, intentará controlar la posesión. Los duelos en el centro del campo serán cruciales para dictar el ritmo del partido. El balón parado podría ser un arma para el Burgos.', 'El Burgos presenta un buen rendimiento como local, con una media de goles anotados y recibidos equilibrada. El FC Andorra muestra debilidades defensivas fuera de casa. Se espera un partido con pocas ocasiones claras, pero con potencial para que ambos marquen.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":2.1,\"prob\":48,\"ev\":0.0038},{\"nombre\":\"Empate (X)\",\"cuota\":3.2,\"prob\":31.25,\"ev\":-0.0234},{\"nombre\":\"Visitante gana (2)\",\"cuota\":3.5,\"prob\":28.57,\"ev\":-0.0428},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.85,\"prob\":54,\"ev\":0.027},{\"nombre\":\"Under 2.5 goles\",\"cuota\":1.95,\"prob\":46,\"ev\":-0.023},{\"nombre\":\"BTTS Sí\",\"cuota\":1.75,\"prob\":57,\"ev\":0.0125},{\"nombre\":\"BTTS No\",\"cuota\":2,\"prob\":43,\"ev\":-0.04}]', 'El Burgos tiene una ligera ventaja por jugar en casa. La cuota para la victoria local ofrece un pequeño valor. Se recomienda stake bajo debido a la paridad esperada.');
INSERT INTO `analisis_final` (`id`, `fixture_id`, `pronostico`, `confianza`, `cuota_recomendada`, `razonamiento`, `gemini_raw`, `llama_raw`, `es_multiple`, `creado_en`, `mercado_optimo`, `cuota_estimada`, `ev_calculado`, `prob_real`, `prob_implicita`, `stake_pct`, `nivel_riesgo`, `es_apuesta_fuerte`, `analisis_tactico`, `analisis_estadistico`, `mercados_json`, `conclusion`) VALUES
(128, 2284122, 'local', 70, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nEl Barcelona Femení, jugando en casa, es el claro favorito ante la Real Sociedad Femenino. La importancia de los puntos en la Liga F es alta para ambos, pero la jerarquía local del Barça es un factor determinante.\n\n⚽ ANÁLISIS TÁCTICO\nEl Barcelona Femení suele dominar la posesión con un juego ofensivo y de ataque constante. La Real Sociedad buscará defenderse y salir al contraataque. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido.\n\n📊 ESTADÍSTICAS\nEl Barcelona Femení tiene un rendimiento local muy sólido, con una alta media de goles a favor y pocos en contra. La Real Sociedad, aunque defensivamente competente, suele sufrir ante equipos de la parte alta de la tabla.\n\n⚔️ DUELOS CLAVE\n  · Alexia Putellas (FCB) vs. Ingrid Syrstad Engen (RSO)\n  · Aitana Bonmatí (FCB) vs. Rafaelle Souza (RSO)\n\n⭐ JUGADORES CLAVE\n  · Salma Paralluelo (local)\n  · Nerea Eizagirre (visitante)\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: Local gana (1)\n  · Cuota estimada: 1.3\n  · EV: +0.01%\n  · Prob real: 77% vs implícita: 76%\n  · Stake: 1% bankroll\n\n📈 TODOS LOS MERCADOS\n  · Local gana (1): @1.3 | 77% | EV: +0.01%\n  · Empate (X): @4.5 | 22.2% | EV: -2.20%\n  · Visitante gana (2): @8 | 12.5% | EV: -46.50%\n  · Over 2.5 goles: @1.5 | 66.7% | EV: -16.70%\n  · Under 2.5 goles: @2.5 | 33.3% | EV: +25.00%\n  · BTTS Sí: @1.8 | 55.6% | EV: -5.60%\n  · BTTS No: @1.9 | 44.4% | EV: -11.10%\n\n✅ CONCLUSIÓN\nVictoria local previsible por la fortaleza del Barcelona. La apuesta se centra en la victoria culé, aunque con un EV mínimo. Se recomienda stake bajo por la baja rentabilidad.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 23:12:07\",\"pronostico\":\"local\",\"confianza\":70,\"contexto\":\"El Barcelona Femení, jugando en casa, es el claro favorito ante la Real Sociedad Femenino. La importancia de los puntos en la Liga F es alta para ambos, pero la jerarquía local del Barça es un factor determinante.\",\"analisis_tactico\":\"El Barcelona Femení suele dominar la posesión con un juego ofensivo y de ataque constante. La Real Sociedad buscará defenderse y salir al contraataque. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido.\",\"analisis_estadistico\":\"El Barcelona Femení tiene un rendimiento local muy sólido, con una alta media de goles a favor y pocos en contra. La Real Sociedad, aunque defensivamente competente, suele sufrir ante equipos de la parte alta de la tabla.\",\"duelos_clave\":[\"Alexia Putellas (FCB) vs. Ingrid Syrstad Engen (RSO)\",\"Aitana Bonmatí (FCB) vs. Rafaelle Souza (RSO)\"],\"jugadores_clave\":[\"Salma Paralluelo (local)\",\"Nerea Eizagirre (visitante)\"],\"mercado_optimo\":\"Local gana (1)\",\"cuota_estimada\":1.3,\"ev_calculado\":0.00013,\"probabilidad_real\":77,\"prob_implicita\":76,\"nivel_riesgo\":\"BAJO\",\"stake_pct\":1,\"es_apuesta_fuerte\":false,\"mercados_json\":[{\"nombre\":\"Local gana (1)\",\"cuota\":1.3,\"prob\":77,\"ev\":0.00013},{\"nombre\":\"Empate (X)\",\"cuota\":4.5,\"prob\":22.2,\"ev\":-0.022},{\"nombre\":\"Visitante gana (2)\",\"cuota\":8,\"prob\":12.5,\"ev\":-0.465},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.5,\"prob\":66.7,\"ev\":-0.167},{\"nombre\":\"Under 2.5 goles\",\"cuota\":2.5,\"prob\":33.3,\"ev\":0.25},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55.6,\"ev\":-0.056},{\"nombre\":\"BTTS No\",\"cuota\":1.9,\"prob\":44.4,\"ev\":-0.111}],\"razon\":\"La superioridad del Barcelona Femení en casa es innegable, respaldada por su historial y plantilla. A pesar de la solidez defensiva de la Real Sociedad, el poder ofensivo del Barça debería imponerse. La cuota para la victoria local, aunque baja, representa un valor conservador.\",\"conclusion\":\"Victoria local previsible por la fortaleza del Barcelona. La apuesta se centra en la victoria culé, aunque con un EV mínimo. Se recomienda stake bajo por la baja rentabilidad.\",\"cuota_minima\":1.29,\"cuotas_trabajo\":{\"local\":1.3,\"empate\":4.5,\"visitante\":8}}', '', 0, '2026-05-26 23:12:07', 'Local gana (1)', 1.30, 0.0001, 77, 76, 1, 'BAJO', 0, 'El Barcelona Femení suele dominar la posesión con un juego ofensivo y de ataque constante. La Real Sociedad buscará defenderse y salir al contraataque. Los duelos en el centro del campo serán cruciales para controlar el ritmo del partido.', 'El Barcelona Femení tiene un rendimiento local muy sólido, con una alta media de goles a favor y pocos en contra. La Real Sociedad, aunque defensivamente competente, suele sufrir ante equipos de la parte alta de la tabla.', '[{\"nombre\":\"Local gana (1)\",\"cuota\":1.3,\"prob\":77,\"ev\":0.00013},{\"nombre\":\"Empate (X)\",\"cuota\":4.5,\"prob\":22.2,\"ev\":-0.022},{\"nombre\":\"Visitante gana (2)\",\"cuota\":8,\"prob\":12.5,\"ev\":-0.465},{\"nombre\":\"Over 2.5 goles\",\"cuota\":1.5,\"prob\":66.7,\"ev\":-0.167},{\"nombre\":\"Under 2.5 goles\",\"cuota\":2.5,\"prob\":33.3,\"ev\":0.25},{\"nombre\":\"BTTS Sí\",\"cuota\":1.8,\"prob\":55.6,\"ev\":-0.056},{\"nombre\":\"BTTS No\",\"cuota\":1.9,\"prob\":44.4,\"ev\":-0.111}]', 'Victoria local previsible por la fortaleza del Barcelona. La apuesta se centra en la victoria culé, aunque con un EV mínimo. Se recomienda stake bajo por la baja rentabilidad.'),
(129, 2284123, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nAl no haber cuotas disponibles, es imposible determinar la importancia de los puntos o la forma estimada de los equipos. Se aplicará un criterio conservador.\n\n⚽ ANÁLISIS TÁCTICO\nSin información sobre los sistemas de juego habituales de ambos equipos, se asume un planteamiento conservador por parte de ambos. Los duelos clave se centrarán en las bandas y en la disputa del centro del campo. El balón parado podría ser una vía para desequilibrar un partido previsiblemente cerrado.\n\n📊 ESTADÍSTICAS\nLa ausencia de datos históricos y de la temporada actual impide un análisis estadístico fiable. Se asume un rendimiento moderado en casa para el Deportivo y un comportamiento similar fuera para el Espanyol.\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No aplica\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin cuotas ni datos, no hay base para una apuesta. Se recomienda esperar a tener información fiable. El riesgo es máximo ante la falta de referencias.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 23:12:27\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Al no haber cuotas disponibles, es imposible determinar la importancia de los puntos o la forma estimada de los equipos. Se aplicará un criterio conservador.\",\"analisis_tactico\":\"Sin información sobre los sistemas de juego habituales de ambos equipos, se asume un planteamiento conservador por parte de ambos. Los duelos clave se centrarán en las bandas y en la disputa del centro del campo. El balón parado podría ser una vía para desequilibrar un partido previsiblemente cerrado.\",\"analisis_estadistico\":\"La ausencia de datos históricos y de la temporada actual impide un análisis estadístico fiable. Se asume un rendimiento moderado en casa para el Deportivo y un comportamiento similar fuera para el Espanyol.\",\"duelos_clave\":[],\"jugadores_clave\":[],\"mercado_optimo\":\"No aplica\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"La falta de cuotas y datos históricos impide realizar un análisis de valor preciso. Sin una referencia de mercado, es imposible identificar apuestas con Expected Value (EV) positivo. Por lo tanto, la prudencia dicta no apostar en este encuentro.\",\"conclusion\":\"Sin cuotas ni datos, no hay base para una apuesta. Se recomienda esperar a tener información fiable. El riesgo es máximo ante la falta de referencias.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 23:12:27', 'No aplica', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Sin información sobre los sistemas de juego habituales de ambos equipos, se asume un planteamiento conservador por parte de ambos. Los duelos clave se centrarán en las bandas y en la disputa del centro del campo. El balón parado podría ser una vía para desequilibrar un partido previsiblemente cerrado.', 'La ausencia de datos históricos y de la temporada actual impide un análisis estadístico fiable. Se asume un rendimiento moderado en casa para el Deportivo y un comportamiento similar fuera para el Espanyol.', '[]', 'Sin cuotas ni datos, no hay base para una apuesta. Se recomienda esperar a tener información fiable. El riesgo es máximo ante la falta de referencias.'),
(130, 2397492, 'no_apostar', 50, NULL, '🤖 ANALISTA: Gjk (gemini-2.5-flash-lite)\n\n📋 CONTEXTO\nSin datos H2H y cuotas no disponibles, se aplica un criterio conservador. La importancia de los puntos dependerá de la fase de la temporada, pero en general, la localía suele ser un factor relevante en ligas de menor perfil.\n\n⚽ ANÁLISIS TÁCTICO\nSin información sobre sistemas de juego o estilos, es imposible predecir duelos clave o estrategias de balón parado. Se asume un encuentro abierto donde ambos equipos buscarán imponer su ritmo.\n\n📊 ESTADÍSTICAS\nCon datos de rendimiento local/visitante, xG o tendencias Over/Under inexistentes, no se pueden realizar proyecciones fiables. La ausencia de estadísticas previas limita el análisis a especulaciones.\n\n🎯 APUESTA ÓPTIMA\n  · Mercado: No disponible\n  · Cuota estimada: 0\n  · EV: 0.00%\n  · Prob real: 0% vs implícita: 0%\n  · Stake: 0% bankroll\n  · ⚠️ No apostar\n\n✅ CONCLUSIÓN\nSin datos disponibles, no es posible realizar un pronóstico ni identificar apuestas de valor. Se recomienda esperar a tener más información o mercados con cuotas definidas.', '{\"analista\":\"Gjk\",\"proveedor\":\"gemini\",\"modelo\":\"gemini-2.5-flash-lite\",\"timestamp\":\"2026-05-26 23:12:47\",\"pronostico\":\"no_apostar\",\"confianza\":50,\"contexto\":\"Sin datos H2H y cuotas no disponibles, se aplica un criterio conservador. La importancia de los puntos dependerá de la fase de la temporada, pero en general, la localía suele ser un factor relevante en ligas de menor perfil.\",\"analisis_tactico\":\"Sin información sobre sistemas de juego o estilos, es imposible predecir duelos clave o estrategias de balón parado. Se asume un encuentro abierto donde ambos equipos buscarán imponer su ritmo.\",\"analisis_estadistico\":\"Con datos de rendimiento local\\/visitante, xG o tendencias Over\\/Under inexistentes, no se pueden realizar proyecciones fiables. La ausencia de estadísticas previas limita el análisis a especulaciones.\",\"duelos_clave\":[],\"jugadores_clave\":[],\"mercado_optimo\":\"No disponible\",\"cuota_estimada\":0,\"ev_calculado\":0,\"probabilidad_real\":0,\"prob_implicita\":0,\"nivel_riesgo\":\"ALTO\",\"stake_pct\":0,\"es_apuesta_fuerte\":false,\"mercados_json\":[],\"razon\":\"La falta total de datos (cuotas, H2H, estadísticas) impide cualquier análisis riguroso. No hay información para estimar probabilidades reales ni para identificar mercados con valor esperado positivo.\",\"conclusion\":\"Sin datos disponibles, no es posible realizar un pronóstico ni identificar apuestas de valor. Se recomienda esperar a tener más información o mercados con cuotas definidas.\",\"cuota_minima\":0,\"cuotas_trabajo\":{\"local\":0,\"empate\":0,\"visitante\":0}}', '', 0, '2026-05-26 23:12:47', 'No disponible', 0.00, 0.0000, 0, 0, 0, 'ALTO', 0, 'Sin información sobre sistemas de juego o estilos, es imposible predecir duelos clave o estrategias de balón parado. Se asume un encuentro abierto donde ambos equipos buscarán imponer su ritmo.', 'Con datos de rendimiento local/visitante, xG o tendencias Over/Under inexistentes, no se pueden realizar proyecciones fiables. La ausencia de estadísticas previas limita el análisis a especulaciones.', '[]', 'Sin datos disponibles, no es posible realizar un pronóstico ni identificar apuestas de valor. Se recomienda esperar a tener más información o mercados con cuotas definidas.');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `apis_fuente`
--

CREATE TABLE `apis_fuente` (
  `id` int(10) UNSIGNED NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `proveedor` varchar(40) NOT NULL,
  `api_key` text DEFAULT NULL,
  `base_url` varchar(255) NOT NULL,
  `activa` tinyint(1) NOT NULL DEFAULT 1,
  `prioridad` tinyint(4) NOT NULL DEFAULT 5,
  `peticiones_hoy` int(11) NOT NULL DEFAULT 0,
  `limite_dia` int(11) NOT NULL DEFAULT 0,
  `ultimo_uso` datetime DEFAULT NULL,
  `ultimo_reset` date DEFAULT NULL,
  `soporta_h2h` tinyint(1) NOT NULL DEFAULT 1,
  `soporta_cuotas` tinyint(1) NOT NULL DEFAULT 0,
  `notas` text DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `apis_fuente`
--

INSERT INTO `apis_fuente` (`id`, `nombre`, `proveedor`, `api_key`, `base_url`, `activa`, `prioridad`, `peticiones_hoy`, `limite_dia`, `ultimo_uso`, `ultimo_reset`, `soporta_h2h`, `soporta_cuotas`, `notas`, `creado_en`) VALUES
(1, 'Gjk', 'apifootball', 'NTMyYWJhN2QxMDAzYWNiNjhiNDI4NDIzOGJlZDgwMDU5NWM4YjlhZWY2YzdkYzdmYWMxNGI3ODA1N2E1MzA1MQ==', 'https://apiv3.apifootball.com', 1, 1, 42, 30, '2026-05-26 11:30:07', '2026-05-26', 1, 1, 'API actual. Free: 30 req/día. Soporta H2H y cuotas. Key en Admin → APIs Fuente.', '2026-05-04 13:07:20'),
(2, 'API-Sports (RapidAPI)', 'apisports', 'CONFIGURA_EN_ADMIN', 'https://v3.football.api-sports.io', 0, 5, 0, 100, NULL, '2026-05-26', 1, 1, 'RapidAPI Free: 100 req/día. Necesita X-RapidAPI-Key. Actívala cuando tengas la key.', '2026-05-04 13:07:20'),
(3, 'TheSportsDB (Sin key)', 'thesportsdb', '', 'https://www.thesportsdb.com/api/v1/json/3', 1, 6, 0, 0, '2026-05-25 11:23:03', '2026-05-26', 1, 0, '100% gratis, sin key requerida. No tiene cuotas. Cobertura limitada a grandes ligas.', '2026-05-04 13:07:20'),
(4, 'Gj', 'apifootball', 'YmE4MWI4NTgyMmRiMzkxNDk4MjdiMTBmYzFjOTc2YzNjZDhkNjNkZDcwYzY3YWJiMjc4NDAwYjhkYTdmYzFjMA==', 'https://apiv3.apifootball.com', 1, 2, 56, 30, '2026-05-26 11:31:26', '2026-05-26', 1, 1, '', '2026-05-20 08:46:30'),
(5, 'Gjara', 'apifootball', 'ZjQ2OWM2ZDM5ZDAyMTQ5NzFiNTY3MTViOWQzZGVmOTJkYmIwMjQwYzk5N2Q3YWIzMzY2MTg3NjUwNzUzY2NmZA==', 'https://apiv3.apifootball.com', 1, 3, 42, 30, '2026-05-26 11:32:08', '2026-05-26', 1, 1, '', '2026-05-20 09:00:14');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `api_keys_pool`
--

CREATE TABLE `api_keys_pool` (
  `id` int(10) UNSIGNED NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `proveedor` varchar(40) NOT NULL,
  `api_key` text NOT NULL,
  `activa` tinyint(1) NOT NULL DEFAULT 1,
  `peticiones_hoy` int(11) NOT NULL DEFAULT 0,
  `limite_dia` int(11) NOT NULL DEFAULT 0,
  `ultimo_uso` datetime DEFAULT NULL,
  `ultimo_reset` date DEFAULT NULL,
  `notas` text DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `configuracion`
--

CREATE TABLE `configuracion` (
  `clave` varchar(80) NOT NULL,
  `valor` text NOT NULL,
  `descripcion` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `configuracion`
--

INSERT INTO `configuracion` (`clave`, `valor`, `descripcion`) VALUES
('ligas_activas', '257,258,430,152,302,207,175,168,3,4,13,14,11,12,333,332,188,140,141,142,143,335,337,136,137', 'IDs de ligas a monitorear (API-Football)'),
('max_selecciones_multiple', '20', 'Máximo de partidos en la apuesta combinada'),
('timezone', 'America/Lima', 'Zona horaria del sistema'),
('umbral_confianza_multiple', '65', 'Confianza mínima (%) para incluir en apuesta combinada'),
('version_sistema', '1.0.0', 'Versión de BetSmart');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `log_analisis_ia`
--

CREATE TABLE `log_analisis_ia` (
  `id` int(10) UNSIGNED NOT NULL,
  `fixture_id` int(10) UNSIGNED NOT NULL,
  `pool_key_id` int(10) UNSIGNED NOT NULL,
  `nombre_analista` varchar(80) NOT NULL,
  `proveedor` varchar(40) NOT NULL,
  `modelo` varchar(100) NOT NULL,
  `exitoso` tinyint(1) NOT NULL DEFAULT 1,
  `tokens_usados` int(11) DEFAULT NULL,
  `tiempo_ms` int(11) DEFAULT NULL COMMENT 'Tiempo de respuesta en ms',
  `ev_resultado` decimal(6,4) DEFAULT NULL,
  `error_msg` varchar(500) DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `log_analisis_ia`
--

INSERT INTO `log_analisis_ia` (`id`, `fixture_id`, `pool_key_id`, `nombre_analista`, `proveedor`, `modelo`, `exitoso`, `tokens_usados`, `tiempo_ms`, `ev_resultado`, `error_msg`, `creado_en`) VALUES
(1, 619831, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 97, NULL, 'Sin respuesta', '2026-05-18 06:24:03'),
(2, 619831, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 97, NULL, 'Sin respuesta', '2026-05-18 06:24:05'),
(3, 619831, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 3673, NULL, 'Sin respuesta', '2026-05-18 06:24:11'),
(4, 619831, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 99, NULL, 'Sin respuesta', '2026-05-18 06:24:13'),
(5, 619831, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 1, NULL, 2998, 0.0000, NULL, '2026-05-18 06:24:18'),
(6, 619832, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 81, NULL, 'Sin respuesta', '2026-05-18 06:24:48'),
(7, 619832, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 94, NULL, 'Sin respuesta', '2026-05-18 06:24:50'),
(8, 619832, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 10504, 0.0000, NULL, '2026-05-18 06:25:03'),
(9, 619834, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 110, NULL, 'Sin respuesta', '2026-05-18 06:30:05'),
(10, 619834, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 128, NULL, 'Sin respuesta', '2026-05-18 06:30:06'),
(11, 619834, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 140, NULL, 'Sin respuesta', '2026-05-18 06:30:07'),
(12, 619834, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 19301, 0.0000, NULL, '2026-05-18 06:30:29'),
(13, 619834, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 30004, NULL, 'Sin respuesta', '2026-05-18 06:30:38'),
(14, 619834, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 116, NULL, 'Sin respuesta', '2026-05-18 06:30:40'),
(15, 619834, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 1, NULL, 2191, 0.0670, NULL, '2026-05-18 06:30:44'),
(16, 619830, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 9182, 0.0080, NULL, '2026-05-18 06:42:14'),
(17, 619830, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 18008, 0.0080, NULL, '2026-05-18 06:42:18'),
(18, 619833, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 8895, 0.0000, NULL, '2026-05-18 06:42:53'),
(19, 738916, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 11757, -0.1800, NULL, '2026-05-18 06:48:15'),
(20, 764100, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 15549, 0.0000, NULL, '2026-05-18 07:06:18'),
(21, 717229, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 9534, 0.0730, NULL, '2026-05-18 07:06:58'),
(22, 717230, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 14807, -0.0200, NULL, '2026-05-18 07:12:17'),
(23, 752973, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 1044, NULL, 'Sin respuesta', '2026-05-18 07:12:48'),
(24, 752973, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1019, NULL, 'Sin respuesta', '2026-05-18 07:12:51'),
(25, 752973, 5, 'Analista Llama Dos gjr', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1015, NULL, 'Sin respuesta', '2026-05-18 07:12:54'),
(26, 752973, 6, 'Analista Llama Tres gjk', 'groq', 'llama3-8b-8192', 0, NULL, 70, NULL, 'Sin respuesta', '2026-05-18 07:12:57'),
(27, 752973, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 5408, 0.0000, NULL, '2026-05-18 07:18:08'),
(28, 752974, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 5554, 0.0730, NULL, '2026-05-18 07:18:44'),
(29, 752975, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 5354, 0.0000, NULL, '2026-05-18 07:24:07'),
(30, 619830, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 711, NULL, 'Sin respuesta', '2026-05-18 08:09:12'),
(31, 619830, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1016, NULL, 'Sin respuesta', '2026-05-18 08:09:15'),
(32, 619830, 5, 'Analista Llama Dos gjr', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1014, NULL, 'Sin respuesta', '2026-05-18 08:09:18'),
(33, 619830, 6, 'Analista Llama Tres gjk', 'groq', 'llama3-8b-8192', 0, NULL, 79, NULL, 'Sin respuesta', '2026-05-18 08:09:20'),
(34, 619833, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 1145, NULL, 'Sin respuesta', '2026-05-18 08:09:53'),
(35, 619833, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1012, NULL, 'Sin respuesta', '2026-05-18 08:09:56'),
(36, 619833, 5, 'Analista Llama Dos gjr', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1012, NULL, 'Sin respuesta', '2026-05-18 08:09:59'),
(37, 619833, 6, 'Analista Llama Tres gjk', 'groq', 'llama3-8b-8192', 0, NULL, 87, NULL, 'Sin respuesta', '2026-05-18 08:10:01'),
(38, 619830, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 4916, 0.0000, NULL, '2026-05-18 08:11:35'),
(39, 619833, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 570, NULL, 'Sin respuesta', '2026-05-18 08:12:04'),
(40, 619833, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 286, NULL, 'Sin respuesta', '2026-05-18 08:12:05'),
(41, 619833, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1012, NULL, 'Sin respuesta', '2026-05-18 08:12:07'),
(42, 619833, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1015, NULL, 'Sin respuesta', '2026-05-18 08:12:08'),
(43, 619833, 5, 'Analista Llama Dos gjr', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1013, NULL, 'Sin respuesta', '2026-05-18 08:12:10'),
(44, 619833, 5, 'Analista Llama Dos gjr', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1014, NULL, 'Sin respuesta', '2026-05-18 08:12:11'),
(45, 619833, 6, 'Analista Llama Tres gjk', 'groq', 'llama3-8b-8192', 0, NULL, 80, NULL, 'Sin respuesta', '2026-05-18 08:12:12'),
(46, 619833, 6, 'Analista Llama Tres gjk', 'groq', 'llama3-8b-8192', 0, NULL, 86, NULL, 'Sin respuesta', '2026-05-18 08:12:13'),
(47, 738916, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 6495, -0.0130, NULL, '2026-05-18 08:12:50'),
(48, 619833, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 136, NULL, 'Sin respuesta', '2026-05-19 00:00:05'),
(49, 619833, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 93, NULL, 'Sin respuesta', '2026-05-19 00:00:07'),
(50, 619833, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 8202, 0.0000, NULL, '2026-05-19 00:00:17'),
(51, 764100, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 107, NULL, 'Sin respuesta', '2026-05-19 00:00:47'),
(52, 764100, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 107, NULL, 'Sin respuesta', '2026-05-19 00:00:49'),
(53, 764100, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 0, NULL, 83, NULL, 'Sin respuesta', '2026-05-19 00:00:51'),
(54, 764100, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 102, NULL, 'Sin respuesta', '2026-05-19 00:00:54'),
(55, 764100, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 1, NULL, 2253, -0.1800, NULL, '2026-05-19 00:00:58'),
(56, 717229, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1023, NULL, 'Sin respuesta', '2026-05-19 00:06:04'),
(57, 717230, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 1, NULL, 2722, 0.0000, NULL, '2026-05-19 00:06:39'),
(58, 717229, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1026, NULL, 'Sin respuesta', '2026-05-19 00:12:04'),
(59, 752973, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1011, NULL, 'Sin respuesta', '2026-05-19 00:12:37'),
(60, 717229, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1029, NULL, 'Sin respuesta', '2026-05-19 00:18:03'),
(61, 752973, 4, 'Analista Llama Uno gj', 'groq', 'llama-3.3-70b-versatile', 0, NULL, 1012, NULL, 'Sin respuesta', '2026-05-19 00:18:36'),
(62, 717229, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 163, NULL, 'Sin respuesta', '2026-05-20 00:00:05'),
(63, 717229, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 111, NULL, 'Sin respuesta', '2026-05-20 00:00:07'),
(64, 717229, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 5371, 0.0000, NULL, '2026-05-20 00:00:14'),
(65, 752973, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 87, NULL, 'Sin respuesta', '2026-05-20 00:00:45'),
(66, 752973, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 91, NULL, 'Sin respuesta', '2026-05-20 00:00:47'),
(67, 752973, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 2638, 0.0000, NULL, '2026-05-20 00:00:51'),
(68, 752974, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 108, NULL, 'Sin respuesta', '2026-05-20 00:06:05'),
(69, 752974, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 4020, 0.0040, NULL, '2026-05-20 00:06:11'),
(70, 752975, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 108, NULL, 'Sin respuesta', '2026-05-20 00:06:41'),
(71, 752975, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 5200, 0.0730, NULL, '2026-05-20 00:06:49'),
(72, 764575, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3788, 0.0500, NULL, '2026-05-20 00:12:07'),
(73, 764575, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 10055, 0.0730, NULL, '2026-05-20 14:18:12'),
(74, 2277517, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 301, NULL, 'Sin respuesta', '2026-05-25 11:24:03'),
(75, 2277517, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 119, NULL, 'Sin respuesta', '2026-05-25 11:24:05'),
(76, 2277517, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3982, 0.0260, NULL, '2026-05-25 11:24:11'),
(77, 2277520, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 105, NULL, 'Sin respuesta', '2026-05-25 11:24:26'),
(78, 2277520, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 109, NULL, 'Sin respuesta', '2026-05-25 11:24:28'),
(79, 2277520, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 2966, 0.0000, NULL, '2026-05-25 11:24:33'),
(80, 2277521, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 106, NULL, 'Sin respuesta', '2026-05-25 11:24:48'),
(81, 2277521, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 102, NULL, 'Sin respuesta', '2026-05-25 11:24:50'),
(82, 2277521, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3752, 0.0000, NULL, '2026-05-25 11:24:56'),
(83, 2280455, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 606, NULL, 'Sin respuesta', '2026-05-26 22:42:03'),
(84, 2280455, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 98, NULL, 'Sin respuesta', '2026-05-26 22:42:05'),
(85, 2280455, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 4423, 0.0730, NULL, '2026-05-26 22:42:11'),
(86, 2280456, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 103, NULL, 'Sin respuesta', '2026-05-26 22:42:26'),
(87, 2280456, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 91, NULL, 'Sin respuesta', '2026-05-26 22:42:28'),
(88, 2280456, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3374, 0.0000, NULL, '2026-05-26 22:42:34'),
(89, 2280458, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 103, NULL, 'Sin respuesta', '2026-05-26 22:42:49'),
(90, 2280458, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 96, NULL, 'Sin respuesta', '2026-05-26 22:42:51'),
(91, 2280458, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 4424, 0.0000, NULL, '2026-05-26 22:42:57'),
(92, 2280449, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 105, NULL, 'Sin respuesta', '2026-05-26 22:54:02'),
(93, 2280449, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 193, NULL, 'Sin respuesta', '2026-05-26 22:54:04'),
(94, 2280449, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3252, 0.0000, NULL, '2026-05-26 22:54:10'),
(95, 2280450, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 96, NULL, 'Sin respuesta', '2026-05-26 22:54:25'),
(96, 2280450, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 110, NULL, 'Sin respuesta', '2026-05-26 22:54:27'),
(97, 2280450, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3024, 0.0000, NULL, '2026-05-26 22:54:32'),
(98, 2280451, 1, 'Gj', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 97, NULL, 'Sin respuesta', '2026-05-26 22:54:47'),
(99, 2280451, 2, 'Gjr', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 99, NULL, 'Sin respuesta', '2026-05-26 22:54:49'),
(100, 2280451, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 4228, 0.0038, NULL, '2026-05-26 22:54:55'),
(101, 2284122, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 110, NULL, 'Sin respuesta', '2026-05-26 23:12:02'),
(102, 2284122, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 3201, 0.0001, NULL, '2026-05-26 23:12:07'),
(103, 2284123, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 112, NULL, 'Sin respuesta', '2026-05-26 23:12:22'),
(104, 2284123, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 2755, 0.0000, NULL, '2026-05-26 23:12:27'),
(105, 2397492, 7, 'Ibero', 'gemini', 'gemini-2.0-flash-lite', 0, NULL, 115, NULL, 'Sin respuesta', '2026-05-26 23:12:42'),
(106, 2397492, 3, 'Gjk', 'gemini', 'gemini-2.5-flash-lite', 1, NULL, 2737, 0.0000, NULL, '2026-05-26 23:12:47');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `partidos`
--

CREATE TABLE `partidos` (
  `id` int(10) UNSIGNED NOT NULL,
  `fixture_id` int(10) UNSIGNED NOT NULL,
  `fecha` date NOT NULL,
  `liga` varchar(100) NOT NULL,
  `equipo_local` varchar(100) NOT NULL,
  `equipo_visitante` varchar(100) NOT NULL,
  `cuota_local` decimal(6,2) DEFAULT NULL,
  `cuota_empate` decimal(6,2) DEFAULT NULL,
  `cuota_visitante` decimal(6,2) DEFAULT NULL,
  `estado` enum('pendiente','procesando','listo','error') NOT NULL DEFAULT 'pendiente',
  `data_path` varchar(255) NOT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp(),
  `actualizado_en` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `partidos`
--

INSERT INTO `partidos` (`id`, `fixture_id`, `fecha`, `liga`, `equipo_local`, `equipo_visitante`, `cuota_local`, `cuota_empate`, `cuota_visitante`, `estado`, `data_path`, `creado_en`, `actualizado_en`) VALUES
(950, 619830, '2026-05-19', 'Premier League', 'Bournemouth', 'Manchester City', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-19/match_619830', '2026-05-18 08:08:31', '2026-05-18 08:11:35'),
(951, 619833, '2026-05-19', 'Premier League', 'Chelsea', 'Tottenham', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-19/match_619833', '2026-05-18 08:08:36', '2026-05-19 00:00:17'),
(952, 738916, '2026-05-19', 'Liga Pro', 'Guayaquil City', 'Orense', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-19/match_738916', '2026-05-18 08:09:00', '2026-05-18 08:12:50'),
(953, 764100, '2026-05-20', 'UEFA Europa League - Final', 'Freiburg', 'Aston Villa', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_764100', '2026-05-18 20:01:03', '2026-05-19 00:00:58'),
(954, 717229, '2026-05-20', 'Damallsvenskan', 'Hacken W', 'Vaxjo DFF W', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_717229', '2026-05-18 20:01:11', '2026-05-20 00:00:14'),
(955, 717230, '2026-05-20', 'Damallsvenskan', 'Hammarby W', 'Malmo FF W', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_717230', '2026-05-18 20:01:16', '2026-05-19 00:06:39'),
(956, 752973, '2026-05-20', 'Premier League - Championship Group', 'Al Masry', 'Al Ahly', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_752973', '2026-05-18 20:01:30', '2026-05-20 00:00:51'),
(957, 752974, '2026-05-20', 'Premier League - Championship Group', 'Pyramids', 'Smouha', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_752974', '2026-05-18 20:01:35', '2026-05-20 00:06:11'),
(958, 752975, '2026-05-20', 'Premier League - Championship Group', 'Zamalek', 'Ceramica Cleopatra', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-20/match_752975', '2026-05-18 20:01:40', '2026-05-20 00:06:49'),
(959, 764575, '2026-05-21', 'Bundesliga - Final', 'Wolfsburg', 'Paderborn', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-21/match_764575', '2026-05-19 07:00:52', '2026-05-20 14:18:12'),
(960, 2277517, '2026-05-26', 'Bosnian Premier Liga', 'Borac Banja Luka', 'Posušje', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-26/match_2277517', '2026-05-25 11:22:45', '2026-05-25 11:24:11'),
(961, 2277520, '2026-05-26', 'Bosnian Premier Liga', 'Sloga Doboj', 'Rudar Prijedor', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-26/match_2277520', '2026-05-25 11:22:45', '2026-05-25 11:24:33'),
(962, 2277521, '2026-05-26', 'Bosnian Premier Liga', 'Zrinjski Mostar', 'Velež Mostar', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-26/match_2277521', '2026-05-25 11:22:45', '2026-05-25 11:24:56'),
(963, 2280455, '2026-05-30', 'Spanish La Liga 2', 'Granada', 'Sporting de Gijón', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-30/match_2280455', '2026-05-26 22:40:49', '2026-05-26 22:42:11'),
(964, 2280456, '2026-05-30', 'Spanish La Liga 2', 'Ceuta', 'Albacete', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-30/match_2280456', '2026-05-26 22:40:49', '2026-05-26 22:42:34'),
(965, 2280458, '2026-05-30', 'Spanish La Liga 2', 'Real Sociedad B', 'Cultural Leonesa', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-30/match_2280458', '2026-05-26 22:40:49', '2026-05-26 22:42:57'),
(966, 2280449, '2026-05-31', 'Spanish La Liga 2', 'Real Zaragoza', 'Málaga', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-31/match_2280449', '2026-05-26 22:51:44', '2026-05-26 22:54:10'),
(967, 2280450, '2026-05-31', 'Spanish La Liga 2', 'Córdoba', 'Huesca', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-31/match_2280450', '2026-05-26 22:51:44', '2026-05-26 22:54:32'),
(968, 2280451, '2026-05-31', 'Spanish La Liga 2', 'Burgos', 'FC Andorra', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-31/match_2280451', '2026-05-26 22:51:44', '2026-05-26 22:54:55'),
(969, 2284122, '2026-05-27', 'Spanish Liga F', 'Barcelona Femení', 'Real Sociedad Femenino', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-27/match_2284122', '2026-05-26 23:08:15', '2026-05-26 23:12:07'),
(970, 2284123, '2026-05-27', 'Spanish Liga F', 'Deportivo de La Coruña Women', 'Espanyol Femení', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-27/match_2284123', '2026-05-26 23:08:15', '2026-05-26 23:12:27'),
(971, 2397492, '2026-05-28', 'American USL League One', 'AC Boise', 'Sarasota Paradise', NULL, NULL, NULL, 'listo', '/home/hackruzc/web.hackruz.com/data/2026-05-28/match_2397492', '2026-05-26 23:08:16', '2026-05-26 23:12:47');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `pool_ia_keys`
--

CREATE TABLE `pool_ia_keys` (
  `id` int(10) UNSIGNED NOT NULL,
  `nombre_analista` varchar(80) NOT NULL COMMENT 'Ej: Analista Gemini #1',
  `avatar` varchar(10) DEFAULT '?' COMMENT 'Emoji identificador',
  `proveedor` enum('gemini','groq','openai','mistral','together','custom') NOT NULL DEFAULT 'gemini',
  `modelo` varchar(100) NOT NULL,
  `endpoint` varchar(255) NOT NULL,
  `api_key` text NOT NULL COMMENT 'Key en base64',
  `activa` tinyint(1) NOT NULL DEFAULT 1,
  `prioridad` tinyint(4) NOT NULL DEFAULT 5,
  `limite_dia` int(11) NOT NULL DEFAULT 0 COMMENT '0=sin límite',
  `peticiones_hoy` int(11) NOT NULL DEFAULT 0,
  `peticiones_total` int(11) NOT NULL DEFAULT 0,
  `errores_hoy` int(11) NOT NULL DEFAULT 0,
  `ultimo_uso` datetime DEFAULT NULL,
  `ultimo_reset` date DEFAULT NULL,
  `ultimo_error` datetime DEFAULT NULL,
  `temperature` decimal(3,2) NOT NULL DEFAULT 0.30,
  `max_tokens` int(11) NOT NULL DEFAULT 1500,
  `analisis_exitosos` int(11) NOT NULL DEFAULT 0,
  `analisis_fallidos` int(11) NOT NULL DEFAULT 0,
  `notas` text DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `pool_ia_keys`
--

INSERT INTO `pool_ia_keys` (`id`, `nombre_analista`, `avatar`, `proveedor`, `modelo`, `endpoint`, `api_key`, `activa`, `prioridad`, `limite_dia`, `peticiones_hoy`, `peticiones_total`, `errores_hoy`, `ultimo_uso`, `ultimo_reset`, `ultimo_error`, `temperature`, `max_tokens`, `analisis_exitosos`, `analisis_fallidos`, `notas`, `creado_en`) VALUES
(1, 'Gj', '🔵', 'gemini', 'gemini-2.0-flash-lite', 'https://generativelanguage.googleapis.com/v1beta/models', 'QUl6YVN5RDkwcGlobTVHOTh6MG8xb3AxYnlVdXBFc05lVGthTF9F', 1, 1, 1500, 0, 0, 0, NULL, '2026-05-27', '2026-05-26 22:54:47', 0.30, 1500, 0, 16, 'Gemini key #1 — Analista principal. Configura en Admin → Pool de IAs.', '2026-05-10 09:56:22'),
(2, 'Gjr', '🟦', 'gemini', 'gemini-2.0-flash-lite', 'https://generativelanguage.googleapis.com/v1beta/models', 'QUl6YVN5Q1VCdm1HQ2lpaTgwUnZ1bF9nR05GdlEtRGhTR3poTjlZ', 1, 2, 1500, 0, 0, 0, NULL, '2026-05-27', '2026-05-26 22:54:49', 0.25, 1500, 0, 17, 'Gemini key #2 — Respaldo automático cuando Alpha se agota.', '2026-05-10 09:56:22'),
(3, 'Gjk', '🔷', 'gemini', 'gemini-2.5-flash-lite', 'https://generativelanguage.googleapis.com/v1beta/models', 'QUl6YVN5QkRzdk55U0hDVjlOYTloU1J1d0VyOUswcGlBRmVmVnpz', 1, 3, 1000, 0, 33, 0, '2026-05-26 23:12:47', '2026-05-27', '2026-05-19 00:00:51', 0.35, 1500, 33, 8, 'Gemini key #3 — Modelo 2.5 Flash Lite, mayor capacidad de razonamiento.', '2026-05-10 09:56:22'),
(4, 'Analista Llama Uno gj', '🟢', 'groq', 'llama-3.3-70b-versatile', 'https://api.groq.com/openai/v1', 'Z3NrX3piYmtHRkZEeXl6WDJLdHF6cGJPV0dkeWIzRllGYXN6RFFKVUFZVWtYTEdKWmVpZW1kY1A=', 1, 4, 0, 0, 4, 0, '2026-05-19 00:06:39', '2026-05-20', '2026-05-19 00:18:36', 0.30, 1500, 4, 10, 'Groq key #1 — Llama 3.3 70B. Rápido y sin límite diario en free tier.', '2026-05-10 09:56:22'),
(5, 'Analista Llama Dos gjr', '🟩', 'groq', 'llama-3.3-70b-versatile', 'https://api.groq.com/openai/v1', 'Z3NrX3cyaHFkdm0xUldweEsyZVB2dW43V0dkeWIzRll0dU95dDhSaFNIRU1NUFhDQ3Fsb25CT0I=', 1, 5, 0, 0, 0, 5, NULL, NULL, '2026-05-18 08:12:11', 0.25, 1500, 0, 5, 'Groq key #2 — Segunda cuenta Groq para mayor capacidad.', '2026-05-10 09:56:22'),
(6, 'Analista Llama Tres gjk', '🔹', 'groq', 'llama3-8b-8192', 'https://api.groq.com/openai/v1', 'Z3NrX1BIejhjOWVnbTVXd3FOQjVYSGpsV0dkeWIzRllXNGNpcVVZaEVPT2dOZmFZTnQ2QlAxV3k=', 1, 6, 0, 0, 0, 5, NULL, NULL, '2026-05-18 08:12:13', 0.40, 1200, 0, 5, 'Groq key #3 — Llama 3 8B, más ligero y rápido para análisis básicos.', '2026-05-10 09:56:22'),
(7, 'Ibero', '🤖', 'gemini', 'gemini-2.0-flash-lite', 'https://generativelanguage.googleapis.com/v1beta/models', 'QUl6YVN5QVRvaERacFo1dGRGOTRsaWFEN3JrRGpMaXhFcXFvNzEw', 1, 3, 1500, 0, 0, 0, NULL, '2026-05-26', '2026-05-26 23:12:42', 0.30, 1500, 0, 8, 'Gemini key #4 — Modelo 2.5 Flash Lite, mayor capacidad de razonamiento.', '2026-05-16 14:12:41');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `ranking_diario`
--

CREATE TABLE `ranking_diario` (
  `id` int(10) UNSIGNED NOT NULL,
  `fecha` date NOT NULL,
  `fixture_id` int(10) UNSIGNED NOT NULL,
  `posicion` tinyint(4) NOT NULL DEFAULT 1,
  `mercado` varchar(80) NOT NULL,
  `cuota_estimada` decimal(6,2) NOT NULL,
  `ev_calculado` decimal(6,4) NOT NULL,
  `stake_pct` tinyint(4) NOT NULL,
  `es_fuerte` tinyint(1) DEFAULT 0,
  `equipo_local` varchar(100) NOT NULL,
  `equipo_visitante` varchar(100) NOT NULL,
  `pronostico` varchar(40) NOT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `ranking_diario`
--

INSERT INTO `ranking_diario` (`id`, `fecha`, `fixture_id`, `posicion`, `mercado`, `cuota_estimada`, `ev_calculado`, `stake_pct`, `es_fuerte`, `equipo_local`, `equipo_visitante`, `pronostico`, `creado_en`) VALUES
(1, '2026-05-19', 619830, 1, 'Manchester City gana y Over 2.5 goles', 1.60, 0.0080, 1, 0, 'Bournemouth', 'Manchester City', 'visitante', '2026-05-18 06:42:53'),
(6, '2026-05-20', 752974, 1, 'Over 2.5 goles', 1.85, 0.0040, 1, 0, 'Pyramids', 'Smouha', 'local', '2026-05-18 07:18:44'),
(11, '2026-05-21', 764575, 1, 'Local gana (1)', 2.10, 0.0730, 1, 0, 'Wolfsburg', 'Paderborn', 'local', '2026-05-20 00:12:07'),
(16, '2026-05-26', 2277517, 1, 'Local gana (1)', 2.05, 0.0260, 1, 0, 'Borac Banja Luka', 'Posušje', 'local', '2026-05-25 11:24:56'),
(20, '2026-05-30', 2280455, 1, 'Over 2.5 goles', 1.85, 0.0730, 1, 0, 'Granada', 'Sporting de Gijón', 'local', '2026-05-26 22:42:57'),
(25, '2026-05-31', 2280451, 1, 'Local gana (1)', 2.10, 0.0038, 1, 0, 'Burgos', 'FC Andorra', 'local', '2026-05-26 22:54:55'),
(29, '2026-05-27', 2284122, 1, 'Local gana (1)', 1.30, 0.0001, 1, 0, 'Barcelona Femení', 'Real Sociedad Femenino', 'local', '2026-05-26 23:12:47');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `workers_ia`
--

CREATE TABLE `workers_ia` (
  `id` int(10) UNSIGNED NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `proveedor` varchar(40) NOT NULL,
  `api_key` text NOT NULL,
  `endpoint` varchar(255) NOT NULL,
  `modelo` varchar(100) NOT NULL,
  `activo` tinyint(1) NOT NULL DEFAULT 1,
  `es_principal` tinyint(1) NOT NULL DEFAULT 0,
  `prioridad` tinyint(4) NOT NULL DEFAULT 5,
  `max_tokens` int(11) NOT NULL DEFAULT 600,
  `temperature` decimal(3,2) NOT NULL DEFAULT 0.30,
  `peticiones_hoy` int(11) NOT NULL DEFAULT 0,
  `limite_dia` int(11) NOT NULL DEFAULT 0,
  `ultimo_uso` datetime DEFAULT NULL,
  `ultimo_reset` date DEFAULT NULL,
  `notas` text DEFAULT NULL,
  `creado_en` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Volcado de datos para la tabla `workers_ia`
--

INSERT INTO `workers_ia` (`id`, `nombre`, `proveedor`, `api_key`, `endpoint`, `modelo`, `activo`, `es_principal`, `prioridad`, `max_tokens`, `temperature`, `peticiones_hoy`, `limite_dia`, `ultimo_uso`, `ultimo_reset`, `notas`, `creado_en`) VALUES
(1, 'Gemini 2.0 Flash Lite', 'gemini', 'QUl6YVN5Q05GWWtrTFVnanVpRk4tWFJFT0tYOGNFTV84ckRkX2pV', 'https://generativelanguage.googleapis.com/v1beta/models', 'gemini-2.0-flash-lite', 1, 1, 1, 600, 0.30, 0, 1500, NULL, '2026-05-19', 'Worker principal. Free tier: 1500 req/día, 15 RPM. Configura tu API key desde Admin → Workers.', '2026-04-17 21:07:33'),
(2, 'Gemini 2.5 Flash Lite', 'gemini', 'QUl6YVN5Q05GWWtrTFVnanVpRk4tWFJFT0tYOGNFTV84ckRkX2pV', 'https://generativelanguage.googleapis.com/v1beta/models', 'gemini-2.5-flash-lite', 1, 0, 2, 600, 0.30, 0, 1000, '2026-04-21 10:36:37', '2026-05-08', 'Fallback automático cuando Gemini 2.0 alcanza el límite.', '2026-04-17 21:07:33'),
(3, 'Groq Llama 3.3 70B', 'groq', 'Z3NrX0hWOWJ0NmwzVm40VnVhZUlnV1lJV0dkeWIzRlk4NUJKcUVYaXRDMVJ5T0ZOVUFFbVVZNGM=', 'https://api.groq.com/openai/v1', 'llama-3.3-70b-versatile', 1, 0, 3, 600, 0.30, 0, 0, '2026-05-18 02:44:40', '2026-05-19', 'Worker Groq. Actívalo cuando tengas tu API key de console.groq.com. Free: 30 RPM.', '2026-04-17 21:07:33'),
(4, 'OpenAI GPT-4o Mini', 'openai', 'c2stcHJvai1IbExROHZKd09EN0pNYjJzN2dKVk91QjNOb1JZcGlieXNMaDh6S0ZURHNGbmJHeVp5VDJKdElLR1BhbDVzMHowNkNPNjZPRm5NYlQzQmxia0ZKV0dDZDhkeVp4N3U2bFFvWmVja25yelFDZzYwMnk0SWN3MjdQMkJRUU96Z21VSG5BclZmdVc3ajhiZ2pSRkVBMlpkVEp6YV9PVUE=', 'https://api.openai.com/v1', 'gpt-4o-mini', 1, 0, 4, 600, 0.30, 0, 0, NULL, NULL, 'Worker OpenAI. Requiere cuenta de pago. Actívalo si tienes créditos disponibles.', '2026-04-17 21:07:33');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `admin_usuarios`
--
ALTER TABLE `admin_usuarios`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`);

--
-- Indices de la tabla `analisis_final`
--
ALTER TABLE `analisis_final`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `fixture_id` (`fixture_id`),
  ADD KEY `idx_confianza` (`confianza`),
  ADD KEY `idx_multiple` (`es_multiple`),
  ADD KEY `idx_ev` (`ev_calculado`),
  ADD KEY `idx_fuerte` (`es_apuesta_fuerte`);

--
-- Indices de la tabla `apis_fuente`
--
ALTER TABLE `apis_fuente`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_activa` (`activa`),
  ADD KEY `idx_prioridad` (`prioridad`);

--
-- Indices de la tabla `api_keys_pool`
--
ALTER TABLE `api_keys_pool`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_proveedor` (`proveedor`),
  ADD KEY `idx_activa` (`activa`);

--
-- Indices de la tabla `configuracion`
--
ALTER TABLE `configuracion`
  ADD PRIMARY KEY (`clave`);

--
-- Indices de la tabla `log_analisis_ia`
--
ALTER TABLE `log_analisis_ia`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_fixture` (`fixture_id`),
  ADD KEY `idx_key` (`pool_key_id`),
  ADD KEY `idx_fecha` (`creado_en`);

--
-- Indices de la tabla `partidos`
--
ALTER TABLE `partidos`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `fixture_id` (`fixture_id`),
  ADD KEY `idx_fecha` (`fecha`),
  ADD KEY `idx_estado` (`estado`);

--
-- Indices de la tabla `pool_ia_keys`
--
ALTER TABLE `pool_ia_keys`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_proveedor` (`proveedor`),
  ADD KEY `idx_activa` (`activa`),
  ADD KEY `idx_prioridad` (`prioridad`);

--
-- Indices de la tabla `ranking_diario`
--
ALTER TABLE `ranking_diario`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_fecha_fixture` (`fecha`,`fixture_id`),
  ADD KEY `idx_fecha_ev` (`fecha`,`ev_calculado`);

--
-- Indices de la tabla `workers_ia`
--
ALTER TABLE `workers_ia`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_activo` (`activo`),
  ADD KEY `idx_prioridad` (`prioridad`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `admin_usuarios`
--
ALTER TABLE `admin_usuarios`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT de la tabla `analisis_final`
--
ALTER TABLE `analisis_final`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=131;

--
-- AUTO_INCREMENT de la tabla `apis_fuente`
--
ALTER TABLE `apis_fuente`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT de la tabla `api_keys_pool`
--
ALTER TABLE `api_keys_pool`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `log_analisis_ia`
--
ALTER TABLE `log_analisis_ia`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=107;

--
-- AUTO_INCREMENT de la tabla `partidos`
--
ALTER TABLE `partidos`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=972;

--
-- AUTO_INCREMENT de la tabla `pool_ia_keys`
--
ALTER TABLE `pool_ia_keys`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT de la tabla `ranking_diario`
--
ALTER TABLE `ranking_diario`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32;

--
-- AUTO_INCREMENT de la tabla `workers_ia`
--
ALTER TABLE `workers_ia`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `analisis_final`
--
ALTER TABLE `analisis_final`
  ADD CONSTRAINT `analisis_final_ibfk_1` FOREIGN KEY (`fixture_id`) REFERENCES `partidos` (`fixture_id`) ON DELETE CASCADE;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
