-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 10-10-2025 a las 23:56:18
-- Versión del servidor: 10.4.32-MariaDB
-- Versión de PHP: 8.1.25

START TRANSACTION;



--
-- Base de datos: `betta`
--

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

--
-- Estructura de tabla para la tabla `camadas`
--

CREATE TABLE `camadas` (
  `id` int(11) NOT NULL,
  `criador_id` int(11) NOT NULL,
  `linea_genetica_id` int(11) DEFAULT NULL,
  `padre_ref` varchar(100) DEFAULT NULL COMMENT 'Referencia/ID del pez padre',
  `madre_ref` varchar(100) DEFAULT NULL COMMENT 'Referencia/ID del pez madre',
  `fecha_puesta` date DEFAULT NULL,
  `fecha_eclosion` date DEFAULT NULL,
  `cantidad_alevines_inicial` int(11) DEFAULT NULL,
  `cantidad_alevines_actual` int(11) DEFAULT NULL,
  `notas` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Estructura de tabla para la tabla `casillas`
--

CREATE TABLE `casillas` (
  `id` int(11) NOT NULL,
  `criador_id` int(11) NOT NULL COMMENT 'ID del usuario criador propietario de la casilla',
  `evento_id` int(11) DEFAULT NULL,
  `nombre_casilla` varchar(100) NOT NULL,
  `puntos_acumulados_casilla` int(11) NOT NULL DEFAULT 0 COMMENT 'Puntaje histórico total acumulado por esta casilla'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena las casillas (equipos) de cada criador.';

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

INSERT INTO `casillas` (`id`, `criador_id`, `evento_id`, `nombre_casilla`, `puntos_acumulados_casilla`) VALUES
(4, 15, NULL, 'MOI BETTAS', 25),
(5, 15, NULL, 'ZURZERO', 29),
(6, 23, NULL, 'Yomar', 16),
(7, 23, NULL, 'Escuadron', 35),
(8, 24, NULL, 'William', 31),
(9, 24, NULL, 'willydavid', 22),
(10, 26, NULL, 'Boba Boba', 0),
(11, 26, NULL, 'fekate', 0),
(12, 27, NULL, 'foro', 0),
(13, 27, NULL, 'Jakawa', 0),
(14, 29, NULL, 'Edwin', 31),
(15, 29, NULL, 'Windior', 0),
(16, 30, NULL, 'A51', 12),
(17, 30, NULL, 'Montes de Oca', 0),
(18, 33, NULL, 'jorge', 12),
(19, 33, NULL, 'El cojo Betta SFM', 0),
(20, 34, NULL, 'billy', 0),
(21, 37, NULL, 'Jando', 0),
(22, 37, NULL, 'Albaro', 0),
(23, 38, NULL, 'yendri', 7),
(24, 38, NULL, 'Robert', 12),
(25, 39, NULL, 'Borkebetta letales', 0),
(26, 40, NULL, 'José Alberto', 0),
(27, 41, NULL, 'Junior', 31),
(28, 41, NULL, 'Popeye', 9),
(29, 42, NULL, 'Avatar', 0),
(30, 44, NULL, 'edward', 0),
(31, 50, NULL, 'team uva', 19),
(32, 50, NULL, 'Tambora RD', 24),
(33, 51, NULL, 'Yensi', 0),
(34, 58, NULL, 'Familia 13', 11),
(35, 60, NULL, 'Corniel', 0),
(36, 155, NULL, 'el fiel', 0),
(37, 63, NULL, 'Joel Maimon', 0),
(38, 70, NULL, 'Propotipo', 26),
(39, 70, NULL, 'MAKIRO', 47),
(40, 85, NULL, 'Samuel', 0),
(41, 86, NULL, 'Felix Navel', 10),
(42, 87, NULL, 'Daurys', 27),
(43, 87, NULL, 'La Vega Bettas', 26),
(44, 88, NULL, 'Wilfry', 0),
(45, 100, NULL, 'Royal', 0),
(46, 101, NULL, 'Casadobetta', 0),
(47, 102, NULL, 'Loyds betta', 0),
(48, 108, NULL, 'Yorki', 0),
(49, 115, NULL, 'Juarlin', 0),
(52, 121, NULL, 'policia', 0),
(53, 122, NULL, 'Victor bettas', 0),
(54, 122, NULL, 'Alfonso bettas', 0),
(55, 132, NULL, 'Canadá import', 0),
(56, 132, NULL, 'Holde', 0),
(57, 137, NULL, 'Amor al prójimo betta', 21),
(58, 137, NULL, 'Díos es amor', 0),
(59, 149, NULL, 'EIK', 2),
(60, 149, NULL, 'angel', 0),
(61, 1111, NULL, 'Andy', 0),
(62, 150, NULL, 'Aizen', 5),
(63, 151, NULL, 'Meléndez08', 0),
(64, 152, NULL, 'Dailyn2912', 0),
(65, 152, NULL, 'DMBETTA', 10),
(66, 153, NULL, 'Maníacos bettas', 19),
(67, 153, NULL, 'Yoel bettas Fighters', 0),
(68, 154, NULL, 'Jose luis', 39),
(69, 154, NULL, 'Jmr', 25),
(70, 155, NULL, 'Oraculo', 18),
(71, 156, NULL, 'Bettas Salcedo 055', 0),
(72, 158, NULL, 'Maguay', 15),
(73, 159, NULL, 'Joel', 0),
(74, 159, NULL, 'Joel López', 0),
(75, 161, NULL, 'Tinyo', 0),
(76, 162, NULL, 'Ricardo betta', 12),
(77, 162, NULL, 'R de león betta', 0),
(78, 163, NULL, 'Popa', 32),
(79, 163, NULL, 'Andres', 2),
(80, 164, NULL, 'Gregory', 5),
(81, 165, NULL, 'Julian Javier', 15),
(82, 165, NULL, 'JJF', 12),
(83, 166, NULL, 'Luis Lopez', 5),
(84, 167, NULL, 'Higüey Bettas', 14),
(85, 1111, NULL, 'Policia', 1),
(86, 1111, NULL, 'Policia 2', 0),
(88, 1113, NULL, 'canada import', 0),
(89, 1114, NULL, 'Grabiel Peña', 0),
(90, 1114, NULL, 'Huiguey bettas', 0),
(91, 1115, NULL, 'Arismendy', 0),
(92, 1115, NULL, 'Guaricano', 0),
(93, 1116, NULL, 'Los Frizadores', 0),
(94, 1116, NULL, 'Los Prototipos', 0),
(96, 1118, NULL, 'Oscar Capital', 0),
(97, 1118, NULL, 'Oiner Capital', 0),
(98, 1119, NULL, 'Juanb', 0),
(99, 1119, NULL, 'Juanb2', 0),
(100, 1120, NULL, 'Wallin Cabral', 0),
(101, 1120, NULL, 'Míster Plakat RD', 0),
(103, 44, NULL, 'Eleon', 0),
(106, 1121, NULL, 'eik', 0);

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

--
-- Estructura de tabla para la tabla `colores`
--

CREATE TABLE `colores` (
  `id` int(11) NOT NULL,
  `nombre_color` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Lista de colores estandarizados para los bettas.';

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

INSERT INTO `colores` (`id`, `nombre_color`) VALUES
(13, 'Azul'),
(15, 'Azul Amarillo (ColeFuego)'),
(17, 'Azul Negro'),
(14, 'Azul Rojo'),
(24, 'Bronce'),
(25, 'Bronce Rojo'),
(1, 'Gris'),
(6, 'Gris Azul'),
(2, 'Gris Negro'),
(4, 'Gris Plata'),
(3, 'Gris Rojo'),
(5, 'Gris Verde'),
(18, 'Rojo'),
(20, 'Rojo Azul'),
(22, 'Rojo Bagan'),
(21, 'Rojo Negro'),
(19, 'Rojo Verde'),
(23, 'Uva'),
(7, 'Verde'),
(26, 'Verde Cola de Fuego'),
(9, 'Verde Gris'),
(11, 'Verde Limon'),
(10, 'Verde Negro'),
(8, 'Verde Rojo'),
(12, 'Verde Turquesa');

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

--
-- Estructura de tabla para la tabla `combates`
--

CREATE TABLE `combates` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `enfrentamiento_id` int(11) DEFAULT NULL,
  `ronda` int(11) NOT NULL,
  `mesa_id` int(11) NOT NULL,
  `juez_id` int(11) DEFAULT NULL,
  `casilla1_id` int(11) NOT NULL,
  `pez1_id` int(11) NOT NULL,
  `casilla2_id` int(11) NOT NULL,
  `pez2_id` int(11) NOT NULL,
  `ganador_casilla_id` int(11) DEFAULT NULL,
  `resultado_id` int(11) DEFAULT NULL,
  `tiempo_combate_segundos` int(11) DEFAULT NULL,
  `paso_a_majon` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Se pone en TRUE cuando el cronómetro principal llega a 5 minutos.',
  `tiempo_aux_casilla1_seg` int(11) DEFAULT NULL COMMENT 'Almacena el tiempo final del cronómetro auxiliar del participante 1.',
  `tiempo_aux_casilla2_seg` int(11) DEFAULT NULL COMMENT 'Almacena el tiempo final del cronómetro auxiliar del participante 2.',
  `estado` enum('pendiente','en_curso','finalizado') DEFAULT 'pendiente',
  `start_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

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

INSERT INTO `combates` (`id`, `evento_id`, `enfrentamiento_id`, `ronda`, `mesa_id`, `juez_id`, `casilla1_id`, `pez1_id`, `casilla2_id`, `pez2_id`, `ganador_casilla_id`, `resultado_id`, `tiempo_combate_segundos`, `paso_a_majon`, `tiempo_aux_casilla1_seg`, `tiempo_aux_casilla2_seg`, `estado`, `start_time`) VALUES
(504, 10, NULL, 1, 1, NULL, 9, 1321, 96, 1232, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(505, 10, NULL, 1, 2, NULL, 9, 1320, 42, 1327, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(506, 10, NULL, 1, 3, NULL, 9, 1322, 14, 1202, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(507, 10, NULL, 1, 4, NULL, 8, 1318, 81, 1182, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(508, 10, NULL, 1, 5, NULL, 8, 1317, 4, 1289, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(509, 10, NULL, 1, 6, NULL, 42, 1328, 7, 1194, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(510, 10, NULL, 1, 7, NULL, 4, 1287, 56, 1261, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(511, 10, NULL, 1, 8, NULL, 16, 1304, 14, 1201, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(512, 10, NULL, 1, 9, NULL, 81, 1180, 42, 1326, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(513, 10, NULL, 1, 10, NULL, 81, 1181, 5, 1290, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(514, 10, NULL, 1, 11, NULL, 32, 1212, 56, 1262, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(515, 10, NULL, 1, 12, NULL, 16, 1302, 7, 1196, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(516, 10, NULL, 1, 13, NULL, 14, 1200, 16, 1303, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(517, 10, NULL, 1, 14, NULL, 57, 1241, 7, 1195, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(518, 10, NULL, 1, 15, NULL, 6, 1197, 39, 1311, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(519, 10, NULL, 1, 16, NULL, 4, 1288, 59, 1333, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(520, 10, NULL, 1, 17, NULL, 57, 1239, 6, 1198, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(521, 10, NULL, 1, 18, NULL, 79, 1344, 32, 1213, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(522, 10, NULL, 1, 19, NULL, 57, 1240, 6, 1199, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(523, 10, NULL, 1, 20, NULL, 31, 1217, 97, 1227, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(524, 10, NULL, 1, 21, NULL, 101, 1250, 52, 1341, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(525, 10, NULL, 1, 22, NULL, 100, 1253, 32, 1214, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(526, 10, NULL, 1, 23, NULL, 31, 1215, 5, 1291, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(527, 10, NULL, 1, 24, NULL, 100, 1251, 15, 1204, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(528, 10, NULL, 1, 25, NULL, 100, 1252, 15, 1203, 15, 1, 3378, 0, NULL, NULL, 'finalizado', '2025-09-03 22:09:50'),
(529, 10, NULL, 1, 26, NULL, 36, 1279, 68, 1189, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(530, 10, NULL, 1, 27, NULL, 97, 1229, 8, 1319, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(531, 10, NULL, 1, 28, NULL, 31, 1216, 89, 1337, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(532, 10, NULL, 1, 29, NULL, 28, 1272, 55, 1259, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(533, 10, NULL, 1, 30, NULL, 28, 1274, 5, 1292, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(534, 10, NULL, 1, 31, NULL, 90, 1339, 56, 1260, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(535, 10, NULL, 1, 32, NULL, 27, 1269, 18, 1324, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(536, 10, NULL, 1, 33, NULL, 68, 1191, 79, 1343, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(537, 10, NULL, 1, 34, NULL, 69, 1186, 78, 1346, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(538, 10, NULL, 1, 35, NULL, 68, 1190, 18, 1323, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(539, 10, NULL, 1, 36, NULL, 69, 1187, 27, 1270, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(540, 10, NULL, 1, 37, NULL, 90, 1340, 97, 1228, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(541, 10, NULL, 1, 38, NULL, 38, 1310, 79, 1342, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(542, 10, NULL, 1, 39, NULL, 90, 1338, 55, 1257, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(543, 10, NULL, 1, 40, NULL, 78, 1345, 96, 1230, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(544, 10, NULL, 1, 41, NULL, 18, 1325, 55, 1258, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(545, 10, NULL, 1, 42, NULL, 101, 1248, 58, 1242, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(546, 10, NULL, 1, 43, NULL, 69, 1188, 89, 1335, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(547, 10, NULL, 1, 44, NULL, 59, 1334, 70, 1283, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(548, 10, NULL, 1, 45, NULL, 59, 1332, 36, 1280, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(549, 10, NULL, 1, 46, NULL, 38, 1308, 58, 1244, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(550, 10, NULL, 1, 47, NULL, 39, 1313, 36, 1278, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(551, 10, NULL, 1, 48, NULL, 96, 1231, 89, 1336, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(552, 10, NULL, 1, 49, NULL, 28, 1273, 38, 1309, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(553, 10, NULL, 1, 50, NULL, 101, 1249, 58, 1243, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(554, 10, NULL, 1, 51, NULL, 15, 1205, 27, 1271, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(555, 10, NULL, 1, 52, NULL, 70, 1282, 39, 1312, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50'),
(556, 10, NULL, 1, 53, NULL, 70, 1281, 78, 1347, NULL, NULL, NULL, 0, NULL, NULL, 'pendiente', '2025-09-03 22:09:50');

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

--
-- Estructura de tabla para la tabla `criadero_ejemplares`
--

CREATE TABLE `criadero_ejemplares` (
  `id` int(11) NOT NULL,
  `criador_id` int(11) NOT NULL,
  `identificador_unico` varchar(100) NOT NULL COMMENT 'Un ID o nombre único para el pez en el criadero (Ej: RED-001, CAMADA-A-05)',
  `camada_id` int(11) DEFAULT NULL,
  `linea_genetica_id` int(11) DEFAULT NULL,
  `sexo` enum('Macho','Hembra','Indeterminado') DEFAULT 'Indeterminado',
  `fecha_nacimiento` date DEFAULT NULL,
  `color_id` int(11) DEFAULT NULL,
  `estado_cria` enum('en_crecimiento','reproductor','en_preparacion','retirado','vendido') NOT NULL DEFAULT 'en_crecimiento',
  `notas` text DEFAULT NULL,
  `fecha_registro` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Inventario de todos los peces de un criador.';

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

--
-- Estructura de tabla para la tabla `enfrentamientos_rondas`
--

CREATE TABLE `enfrentamientos_rondas` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `ronda` int(11) NOT NULL,
  `participante1_id` int(11) NOT NULL,
  `participante2_id` int(11) NOT NULL,
  `mesa_id` int(11) DEFAULT NULL,
  `estado` enum('pendiente','en_curso','finalizado','cancelado') DEFAULT 'pendiente',
  `start_time` datetime DEFAULT NULL COMMENT 'Timestamp de cuando inicia el combate',
  `duration_seconds` int(11) DEFAULT NULL COMMENT 'Duración total del combate en segundos',
  `ganador_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena los enfrentamientos por ronda para eventos todos contra todos';

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

--
-- Estructura de tabla para la tabla `eventos`
--

CREATE TABLE `eventos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(150) NOT NULL,
  `fecha` date NOT NULL,
  `tipo` enum('por_casilla','todos_contra_todos','equipo_8v8') NOT NULL,
  `temporada_id` int(11) NOT NULL,
  `reglamento_id` int(11) DEFAULT NULL COMMENT 'ID del reglamento que aplica a este evento',
  `peso_minimo` decimal(4,2) DEFAULT NULL COMMENT 'Peso mínimo permitido. NULL si no hay límite.',
  `peso_maximo` decimal(4,2) DEFAULT NULL COMMENT 'Peso máximo permitido. NULL si no hay límite.',
  `margen_emparejamiento` decimal(4,2) DEFAULT NULL COMMENT 'Margen de peso para emparejamiento. NULL si no aplica.',
  `estado` enum('pendiente','inscripcion','en_curso','finalizado') NOT NULL DEFAULT 'pendiente',
  `ganador_1er_lugar_casilla_id` int(11) DEFAULT NULL,
  `ganador_2do_lugar_casilla_id` int(11) DEFAULT NULL,
  `ganador_3er_lugar_casilla_id` int(11) DEFAULT NULL,
  `pelea_mas_rapida_combate_id` int(11) DEFAULT NULL,
  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena todos los torneos y eventos de la aplicación.';

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

INSERT INTO `eventos` (`id`, `nombre`, `fecha`, `tipo`, `temporada_id`, `reglamento_id`, `peso_minimo`, `peso_maximo`, `margen_emparejamiento`, `estado`, `ganador_1er_lugar_casilla_id`, `ganador_2do_lugar_casilla_id`, `ganador_3er_lugar_casilla_id`, `pelea_mas_rapida_combate_id`, `fecha_creacion`) VALUES
(10, 'HIGUEY', '2025-08-31', 'por_casilla', 2, NULL, 1.00, 1.70, 0.03, 'pendiente', NULL, NULL, NULL, 528, '2025-08-31 12:36:02'),
(11, 'Hostiger', '2025-08-31', 'por_casilla', 1, NULL, 1.00, 1.70, 0.03, 'pendiente', NULL, NULL, NULL, NULL, '2025-08-31 17:09:48'),
(12, '7tmo Santiago', '2025-10-05', 'por_casilla', 2, NULL, 1.00, 1.70, 0.03, 'pendiente', NULL, NULL, NULL, NULL, '2025-09-05 01:12:40'),
(13, 'Hostiger', '2025-09-06', 'por_casilla', 2, NULL, 1.00, 1.70, 0.03, 'pendiente', NULL, NULL, NULL, NULL, '2025-09-05 04:21:48'),
(15, 'evento thai 05/10/2026', '2025-10-05', 'por_casilla', 2, NULL, 1.00, 1.70, 0.03, 'pendiente', NULL, NULL, NULL, NULL, '2025-10-04 00:00:30');

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

--
-- Estructura de tabla para la tabla `inscripciones`
--

CREATE TABLE `inscripciones` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `casilla_id` int(11) DEFAULT NULL,
  `criador_id` int(11) NOT NULL,
  `fecha_inscripcion` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Registra qué participantes se inscriben en cada evento.';

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

INSERT INTO `inscripciones` (`id`, `evento_id`, `casilla_id`, `criador_id`, `fecha_inscripcion`) VALUES
(179, 10, 4, 15, '2025-08-31 16:14:52'),
(180, 10, 5, 15, '2025-08-31 16:14:52'),
(181, 10, 7, 23, '2025-08-31 16:14:52'),
(182, 10, 6, 23, '2025-08-31 16:14:52'),
(183, 10, 8, 24, '2025-08-31 16:14:52'),
(184, 10, 9, 24, '2025-08-31 16:14:52'),
(185, 10, 14, 29, '2025-08-31 16:14:52'),
(186, 10, 15, 29, '2025-08-31 16:14:52'),
(187, 10, 16, 30, '2025-08-31 16:14:52'),
(188, 10, 18, 33, '2025-08-31 16:14:52'),
(189, 10, 27, 41, '2025-08-31 16:14:52'),
(190, 10, 28, 41, '2025-08-31 16:14:52'),
(191, 10, 32, 50, '2025-08-31 16:14:52'),
(192, 10, 31, 50, '2025-08-31 16:14:52'),
(193, 10, 39, 70, '2025-08-31 16:14:52'),
(194, 10, 38, 70, '2025-08-31 16:14:52'),
(195, 10, 42, 87, '2025-08-31 16:14:52'),
(196, 10, 52, 121, '2025-08-31 16:14:52'),
(197, 10, 55, 132, '2025-08-31 16:14:52'),
(198, 10, 56, 132, '2025-08-31 16:14:52'),
(199, 10, 57, 137, '2025-08-31 16:14:52'),
(200, 10, 58, 137, '2025-08-31 16:14:52'),
(201, 10, 59, 149, '2025-08-31 16:14:52'),
(202, 10, 69, 154, '2025-08-31 16:14:52'),
(203, 10, 68, 154, '2025-08-31 16:14:52'),
(204, 10, 36, 155, '2025-08-31 16:14:52'),
(205, 10, 70, 155, '2025-08-31 16:14:52'),
(206, 10, 79, 163, '2025-08-31 16:14:52'),
(207, 10, 78, 163, '2025-08-31 16:14:52'),
(208, 10, 81, 165, '2025-08-31 16:14:52'),
(209, 10, 89, 1114, '2025-08-31 16:14:52'),
(210, 10, 90, 1114, '2025-08-31 16:14:52'),
(211, 10, 97, 1118, '2025-08-31 16:14:52'),
(212, 10, 96, 1118, '2025-08-31 16:14:52'),
(213, 10, 101, 1120, '2025-08-31 16:14:52'),
(214, 10, 100, 1120, '2025-08-31 16:14:52');

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

--
-- Estructura de tabla para la tabla `inscripciones_casillas`
--

CREATE TABLE `inscripciones_casillas` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `casilla_id` int(11) NOT NULL,
  `pagado` tinyint(1) NOT NULL DEFAULT 0,
  `fecha_pago` date DEFAULT NULL,
  `fecha_inscripcion` timestamp NOT NULL DEFAULT current_timestamp(),
  `estado` enum('pendiente','validado','rechazado') DEFAULT 'pendiente',
  `foto_transferencia` varchar(255) DEFAULT NULL,
  `banco_pago` varchar(100) DEFAULT NULL,
  `referencia_pago` varchar(100) DEFAULT NULL,
  `monto_pagado` decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

INSERT INTO `inscripciones_casillas` (`id`, `evento_id`, `casilla_id`, `pagado`, `fecha_pago`, `fecha_inscripcion`, `estado`, `foto_transferencia`, `banco_pago`, `referencia_pago`, `monto_pagado`) VALUES
(2, 12, 16, 1, '2025-09-04', '2025-09-05 01:12:53', 'validado', NULL, NULL, NULL, NULL),
(3, 12, 4, 1, '2025-09-04', '2025-09-05 01:18:44', 'validado', NULL, NULL, NULL, NULL),
(7, 12, 69, 0, NULL, '2025-09-05 03:26:59', 'pendiente', 'uploads/evt12_ref0000003333_1757042819.png', 'BHD', '0000003333', 1400.00),
(8, 12, 68, 0, NULL, '2025-09-05 03:26:59', 'pendiente', 'uploads/evt12_ref0000003333_1757042819.png', 'BHD', '0000003333', 1400.00),
(11, 13, 61, 1, '2025-09-05', '2025-09-05 12:56:16', 'validado', NULL, NULL, NULL, NULL),
(12, 12, 61, 1, '2025-10-03', '2025-10-04 00:03:44', 'validado', NULL, NULL, NULL, NULL),
(13, 12, 85, 1, '2025-10-03', '2025-10-04 00:03:46', 'validado', NULL, NULL, NULL, NULL),
(14, 12, 86, 0, NULL, '2025-10-04 00:03:47', 'pendiente', NULL, NULL, NULL, NULL),
(15, 12, 79, 0, NULL, '2025-10-04 00:03:49', 'pendiente', NULL, NULL, NULL, NULL),
(16, 12, 78, 0, NULL, '2025-10-04 00:03:51', 'pendiente', NULL, NULL, NULL, NULL),
(17, 12, 59, 1, '2025-10-03', '2025-10-04 00:03:55', 'validado', NULL, NULL, NULL, NULL),
(18, 12, 91, 0, NULL, '2025-10-04 00:03:57', 'pendiente', NULL, NULL, NULL, NULL),
(19, 12, 92, 0, NULL, '2025-10-04 00:03:58', 'pendiente', NULL, NULL, NULL, NULL),
(20, 12, 71, 0, NULL, '2025-10-04 00:04:03', 'pendiente', NULL, NULL, NULL, NULL);

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

--
-- Estructura de tabla para la tabla `lineas_geneticas`
--

CREATE TABLE `lineas_geneticas` (
  `id` int(11) NOT NULL,
  `criador_id` int(11) NOT NULL,
  `nombre_linea` varchar(100) NOT NULL,
  `descripcion` text DEFAULT NULL,
  `fecha_creacion` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Estructura de tabla para la tabla `mesas`
--

CREATE TABLE `mesas` (
  `id` int(11) NOT NULL,
  `nombre_mesa` varchar(50) NOT NULL,
  `juez_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

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

--
-- Estructura de tabla para la tabla `partidas_casillas`
--

CREATE TABLE `partidas_casillas` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `casilla_id` int(11) NOT NULL,
  `combate_id` int(11) NOT NULL,
  `resultado_id` int(11) NOT NULL,
  `puntos_obtenidos` int(11) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Registra el resultado detallado de cada casilla en cada combate.';

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

INSERT INTO `partidas_casillas` (`id`, `evento_id`, `casilla_id`, `combate_id`, `resultado_id`, `puntos_obtenidos`) VALUES
(425, 10, 100, 528, 7, 1),
(426, 10, 15, 528, 1, 10);

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

--
-- Estructura de tabla para la tabla `peces`
--

CREATE TABLE `peces` (
  `id` int(11) NOT NULL,
  `numero_unico` varchar(20) NOT NULL,
  `casilla_id` int(11) NOT NULL,
  `camada_id` int(11) DEFAULT NULL,
  `linea_genetica_id` int(11) DEFAULT NULL,
  `event_id` int(11) NOT NULL,
  `numero_identificacion` int(11) NOT NULL,
  `peso` decimal(4,2) NOT NULL,
  `color_id` int(11) NOT NULL COMMENT 'ID del color del pez, relacionado a la tabla colores',
  `sexo` enum('Macho','Hembra') DEFAULT NULL,
  `es_reemplazo` tinyint(1) DEFAULT 0,
  `estado` enum('disponible','en_combate','descansando','eliminado') DEFAULT 'disponible',
  `notas_preparacion` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

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

INSERT INTO `peces` (`id`, `numero_unico`, `casilla_id`, `camada_id`, `linea_genetica_id`, `event_id`, `numero_identificacion`, `peso`, `color_id`, `sexo`, `es_reemplazo`, `estado`, `notas_preparacion`) VALUES
(1180, '1', 81, NULL, NULL, 10, 1, 1.07, 1, NULL, 0, 'disponible', NULL),
(1181, '2', 81, NULL, NULL, 10, 2, 1.07, 1, NULL, 0, 'disponible', NULL),
(1182, '3', 81, NULL, NULL, 10, 3, 1.03, 1, NULL, 0, 'disponible', NULL),
(1186, '4', 69, NULL, NULL, 10, 1, 1.32, 13, NULL, 0, 'disponible', NULL),
(1187, '5', 69, NULL, NULL, 10, 2, 1.33, 14, NULL, 0, 'disponible', NULL),
(1188, '6', 69, NULL, NULL, 10, 3, 1.40, 14, NULL, 0, 'disponible', NULL),
(1189, '7', 68, NULL, NULL, 10, 1, 1.26, 8, NULL, 0, 'disponible', NULL),
(1190, '8', 68, NULL, NULL, 10, 2, 1.33, 8, NULL, 0, 'disponible', NULL),
(1191, '9', 68, NULL, NULL, 10, 3, 1.32, 8, NULL, 0, 'disponible', NULL),
(1194, '10', 7, NULL, NULL, 10, 1, 1.05, 13, NULL, 0, 'disponible', NULL),
(1195, '11', 7, NULL, NULL, 10, 2, 1.15, 14, NULL, 0, 'disponible', NULL),
(1196, '12', 7, NULL, NULL, 10, 3, 1.12, 14, NULL, 0, 'disponible', NULL),
(1197, '13', 6, NULL, NULL, 10, 1, 1.16, 7, NULL, 0, 'disponible', NULL),
(1198, '14', 6, NULL, NULL, 10, 2, 1.19, 8, NULL, 0, 'disponible', NULL),
(1199, '15', 6, NULL, NULL, 10, 3, 1.21, 8, NULL, 0, 'disponible', NULL),
(1200, '16', 14, NULL, NULL, 10, 1, 1.12, 13, NULL, 0, 'disponible', NULL),
(1201, '17', 14, NULL, NULL, 10, 2, 1.07, 2, NULL, 0, 'disponible', NULL),
(1202, '18', 14, NULL, NULL, 10, 3, 1.02, 1, NULL, 0, 'disponible', NULL),
(1203, '19', 15, NULL, NULL, 10, 1, 1.25, 13, NULL, 0, 'disponible', NULL),
(1204, '20', 15, NULL, NULL, 10, 2, 1.25, 13, NULL, 0, 'disponible', NULL),
(1205, '21', 15, NULL, NULL, 10, 3, 1.49, 7, NULL, 0, 'disponible', NULL),
(1212, '22', 32, NULL, NULL, 10, 1, 1.09, 1, NULL, 0, 'disponible', NULL),
(1213, '23', 32, NULL, NULL, 10, 2, 1.20, 1, NULL, 0, 'disponible', NULL),
(1214, '24', 32, NULL, NULL, 10, 3, 1.23, 3, NULL, 0, 'disponible', NULL),
(1215, '25', 31, NULL, NULL, 10, 1, 1.24, 13, NULL, 0, 'disponible', NULL),
(1216, '26', 31, NULL, NULL, 10, 2, 1.26, 13, NULL, 0, 'disponible', NULL),
(1217, '27', 31, NULL, NULL, 10, 3, 1.21, 13, NULL, 0, 'disponible', NULL),
(1227, '28', 97, NULL, NULL, 10, 1, 1.21, 8, NULL, 0, 'disponible', NULL),
(1228, '29', 97, NULL, NULL, 10, 2, 1.35, 8, NULL, 0, 'disponible', NULL),
(1229, '30', 97, NULL, NULL, 10, 3, 1.26, 8, NULL, 0, 'disponible', NULL),
(1230, '31', 96, NULL, NULL, 10, 1, 1.38, 2, NULL, 0, 'disponible', NULL),
(1231, '32', 96, NULL, NULL, 10, 2, 1.44, 10, NULL, 0, 'disponible', NULL),
(1232, '33', 96, NULL, NULL, 10, 3, 1.00, 10, NULL, 0, 'disponible', NULL),
(1239, '34', 57, NULL, NULL, 10, 1, 1.19, 13, NULL, 0, 'disponible', NULL),
(1240, '35', 57, NULL, NULL, 10, 2, 1.21, 13, NULL, 0, 'disponible', NULL),
(1241, '36', 57, NULL, NULL, 10, 3, 1.14, 1, NULL, 0, 'disponible', NULL),
(1242, '37', 58, NULL, NULL, 10, 1, 1.39, 1, NULL, 0, 'disponible', NULL),
(1243, '38', 58, NULL, NULL, 10, 2, 1.47, 1, NULL, 0, 'disponible', NULL),
(1244, '39', 58, NULL, NULL, 10, 3, 1.43, 1, NULL, 0, 'disponible', NULL),
(1248, '40', 101, NULL, NULL, 10, 1, 1.39, 2, NULL, 0, 'disponible', NULL),
(1249, '41', 101, NULL, NULL, 10, 2, 1.46, 2, NULL, 0, 'disponible', NULL),
(1250, '42', 101, NULL, NULL, 10, 3, 1.22, 2, NULL, 0, 'disponible', NULL),
(1251, '43', 100, NULL, NULL, 10, 1, 1.24, 3, NULL, 0, 'disponible', NULL),
(1252, '44', 100, NULL, NULL, 10, 2, 1.25, 3, NULL, 0, 'disponible', NULL),
(1253, '45', 100, NULL, NULL, 10, 3, 1.22, 3, NULL, 0, 'disponible', NULL),
(1257, '46', 55, NULL, NULL, 10, 1, 1.37, 14, NULL, 0, 'disponible', NULL),
(1258, '47', 55, NULL, NULL, 10, 2, 1.39, 14, NULL, 0, 'disponible', NULL),
(1259, '48', 55, NULL, NULL, 10, 3, 1.28, 2, NULL, 0, 'disponible', NULL),
(1260, '49', 56, NULL, NULL, 10, 1, 1.30, 3, NULL, 0, 'disponible', NULL),
(1261, '50', 56, NULL, NULL, 10, 2, 1.05, 3, NULL, 0, 'disponible', NULL),
(1262, '51', 56, NULL, NULL, 10, 3, 1.11, 3, NULL, 0, 'disponible', NULL),
(1269, '52', 27, NULL, NULL, 10, 1, 1.31, 2, NULL, 0, 'disponible', NULL),
(1270, '53', 27, NULL, NULL, 10, 2, 1.34, 2, NULL, 0, 'disponible', NULL),
(1271, '54', 27, NULL, NULL, 10, 3, 1.51, 2, NULL, 0, 'disponible', NULL),
(1272, '55', 28, NULL, NULL, 10, 1, 1.27, 7, NULL, 0, 'disponible', NULL),
(1273, '56', 28, NULL, NULL, 10, 2, 1.45, 13, NULL, 0, 'disponible', NULL),
(1274, '57', 28, NULL, NULL, 10, 3, 1.28, 13, NULL, 0, 'disponible', NULL),
(1278, '58', 36, NULL, NULL, 10, 1, 1.44, 1, NULL, 0, 'disponible', NULL),
(1279, '59', 36, NULL, NULL, 10, 2, 1.26, 1, NULL, 0, 'disponible', NULL),
(1280, '60', 36, NULL, NULL, 10, 3, 1.42, 1, NULL, 0, 'disponible', NULL),
(1281, '61', 70, NULL, NULL, 10, 1, 1.57, 17, NULL, 0, 'disponible', NULL),
(1282, '62', 70, NULL, NULL, 10, 2, 1.51, 13, NULL, 0, 'disponible', NULL),
(1283, '63', 70, NULL, NULL, 10, 3, 1.41, 1, NULL, 0, 'disponible', NULL),
(1287, '64', 4, NULL, NULL, 10, 1, 1.05, 1, NULL, 0, 'disponible', NULL),
(1288, '65', 4, NULL, NULL, 10, 2, 1.17, 1, NULL, 0, 'disponible', NULL),
(1289, '66', 4, NULL, NULL, 10, 3, 1.04, 1, NULL, 0, 'disponible', NULL),
(1290, '67', 5, NULL, NULL, 10, 1, 1.08, 1, NULL, 0, 'disponible', NULL),
(1291, '68', 5, NULL, NULL, 10, 2, 1.24, 1, NULL, 0, 'disponible', NULL),
(1292, '69', 5, NULL, NULL, 10, 3, 1.29, 1, NULL, 0, 'disponible', NULL),
(1302, '76', 16, NULL, NULL, 10, 1, 1.11, 1, NULL, 0, 'disponible', NULL),
(1303, '77', 16, NULL, NULL, 10, 2, 1.14, 1, NULL, 0, 'disponible', NULL),
(1304, '78', 16, NULL, NULL, 10, 3, 1.06, 1, NULL, 0, 'disponible', NULL),
(1308, '79', 38, NULL, NULL, 10, 1, 1.42, 1, NULL, 0, 'disponible', NULL),
(1309, '80', 38, NULL, NULL, 10, 2, 1.45, 17, NULL, 0, 'disponible', NULL),
(1310, '81', 38, NULL, NULL, 10, 3, 1.35, 3, NULL, 0, 'disponible', NULL),
(1311, '82', 39, NULL, NULL, 10, 1, 1.16, 3, NULL, 0, 'disponible', NULL),
(1312, '83', 39, NULL, NULL, 10, 2, 1.53, 3, NULL, 0, 'disponible', NULL),
(1313, '84', 39, NULL, NULL, 10, 3, 1.43, 3, NULL, 0, 'disponible', NULL),
(1317, '85', 8, NULL, NULL, 10, 1, 1.03, 1, NULL, 0, 'disponible', NULL),
(1318, '86', 8, NULL, NULL, 10, 2, 1.03, 3, NULL, 0, 'disponible', NULL),
(1319, '87', 8, NULL, NULL, 10, 3, 1.26, 1, NULL, 0, 'disponible', NULL),
(1320, '88', 9, NULL, NULL, 10, 1, 1.00, 1, NULL, 0, 'disponible', NULL),
(1321, '89', 9, NULL, NULL, 10, 2, 1.00, 1, NULL, 0, 'disponible', NULL),
(1322, '90', 9, NULL, NULL, 10, 3, 1.00, 3, NULL, 0, 'disponible', NULL),
(1323, '91', 18, NULL, NULL, 10, 1, 1.33, 3, NULL, 0, 'disponible', NULL),
(1324, '92', 18, NULL, NULL, 10, 2, 1.32, 1, NULL, 0, 'disponible', NULL),
(1325, '93', 18, NULL, NULL, 10, 3, 1.38, 13, NULL, 0, 'disponible', NULL),
(1326, '94', 42, NULL, NULL, 10, 1, 1.08, 3, NULL, 0, 'disponible', NULL),
(1327, '95', 42, NULL, NULL, 10, 2, 1.00, 3, NULL, 0, 'disponible', NULL),
(1328, '96', 42, NULL, NULL, 10, 3, 1.04, 1, NULL, 0, 'disponible', NULL),
(1332, '100', 59, NULL, NULL, 10, 1, 1.41, 14, NULL, 0, 'disponible', NULL),
(1333, '101', 59, NULL, NULL, 10, 2, 1.19, 2, NULL, 0, 'disponible', NULL),
(1334, '102', 59, NULL, NULL, 10, 3, 1.41, 8, NULL, 0, 'disponible', NULL),
(1335, '103', 89, NULL, NULL, 10, 1, 1.41, 1, NULL, 0, 'disponible', NULL),
(1336, '104', 89, NULL, NULL, 10, 2, 1.44, 17, NULL, 0, 'disponible', NULL),
(1337, '105', 89, NULL, NULL, 10, 3, 1.26, 1, NULL, 0, 'disponible', NULL),
(1338, '97', 90, NULL, NULL, 10, 1, 1.36, 3, NULL, 0, 'disponible', NULL),
(1339, '98', 90, NULL, NULL, 10, 2, 1.30, 3, NULL, 0, 'disponible', NULL),
(1340, '99', 90, NULL, NULL, 10, 3, 1.34, 3, NULL, 0, 'disponible', NULL),
(1341, '106', 52, NULL, NULL, 10, 1, 1.22, 14, NULL, 0, 'disponible', NULL),
(1342, '107', 79, NULL, NULL, 10, 1, 1.36, 14, NULL, 0, 'disponible', NULL),
(1343, '108', 79, NULL, NULL, 10, 2, 1.32, 14, NULL, 0, 'disponible', NULL),
(1344, '109', 79, NULL, NULL, 10, 3, 1.20, 14, NULL, 0, 'disponible', NULL),
(1345, '110', 78, NULL, NULL, 10, 1, 1.37, 14, NULL, 0, 'disponible', NULL),
(1346, '111', 78, NULL, NULL, 10, 2, 1.33, 14, NULL, 0, 'disponible', NULL),
(1347, '112', 78, NULL, NULL, 10, 3, 1.58, 14, NULL, 0, 'disponible', NULL),
(1460, '1', 79, NULL, NULL, 11, 1, 1.36, 22, NULL, 0, 'disponible', NULL),
(1461, '2', 79, NULL, NULL, 11, 2, 1.36, 21, NULL, 0, 'disponible', NULL),
(1462, '3', 79, NULL, NULL, 11, 3, 1.22, 1, NULL, 0, 'disponible', NULL),
(1463, '4', 78, NULL, NULL, 11, 1, 1.37, 22, NULL, 0, 'disponible', NULL),
(1464, '5', 78, NULL, NULL, 11, 2, 1.12, 1, NULL, 0, 'disponible', NULL),
(1465, '6', 78, NULL, NULL, 11, 3, 1.34, 17, NULL, 0, 'disponible', NULL),
(1475, '7', 88, NULL, NULL, 11, 1, 1.23, 5, NULL, 0, 'disponible', NULL),
(1476, '8', 88, NULL, NULL, 11, 2, 1.12, 2, NULL, 0, 'disponible', NULL),
(1477, '9', 88, NULL, NULL, 11, 3, 1.12, 14, NULL, 0, 'disponible', NULL),
(1481, '10', 60, NULL, NULL, 11, 1, 1.23, 5, NULL, 0, 'disponible', NULL),
(1482, '11', 60, NULL, NULL, 11, 2, 1.24, 20, NULL, 0, 'disponible', NULL),
(1483, '12', 60, NULL, NULL, 11, 3, 1.34, 23, NULL, 0, 'disponible', NULL),
(1487, '13', 71, NULL, NULL, 11, 1, 1.34, 19, NULL, 0, 'disponible', NULL),
(1488, '14', 71, NULL, NULL, 11, 2, 1.34, 19, NULL, 0, 'disponible', NULL),
(1489, '15', 71, NULL, NULL, 11, 3, 1.34, 19, NULL, 0, 'disponible', NULL),
(1493, '16', 84, NULL, NULL, 11, 1, 1.24, 7, NULL, 0, 'disponible', NULL),
(1494, '17', 84, NULL, NULL, 11, 2, 1.12, 19, NULL, 0, 'disponible', NULL),
(1495, '18', 84, NULL, NULL, 11, 3, 1.32, 21, NULL, 0, 'disponible', NULL),
(1502, '1', 79, NULL, NULL, 13, 1, 1.36, 23, NULL, 0, 'disponible', NULL),
(1503, '2', 79, NULL, NULL, 13, 2, 1.36, 23, NULL, 0, 'disponible', NULL),
(1504, '3', 79, NULL, NULL, 13, 3, 1.36, 23, NULL, 0, 'disponible', NULL),
(1505, '4', 78, NULL, NULL, 13, 1, 1.37, 26, NULL, 0, 'disponible', NULL),
(1506, '5', 78, NULL, NULL, 13, 2, 1.37, 19, NULL, 0, 'disponible', NULL),
(1507, '6', 78, NULL, NULL, 13, 3, 1.37, 5, NULL, 0, 'disponible', NULL),
(1512, '1', 75, NULL, NULL, 12, 1, 1.23, 3, NULL, 0, 'disponible', NULL),
(1517, '1', 106, NULL, NULL, 15, 1, 1.09, 19, NULL, 0, 'disponible', NULL),
(1518, '2', 106, NULL, NULL, 15, 2, 1.23, 6, NULL, 0, 'disponible', NULL),
(1519, '3', 106, NULL, NULL, 15, 3, 1.42, 2, NULL, 0, 'disponible', NULL),
(1520, '4', 91, NULL, NULL, 15, 1, 1.41, 21, NULL, 0, 'disponible', NULL),
(1521, '5', 91, NULL, NULL, 15, 2, 1.19, 19, NULL, 0, 'disponible', NULL),
(1522, '6', 91, NULL, NULL, 15, 3, 1.40, 2, NULL, 0, 'disponible', NULL),
(1523, '7', 71, NULL, NULL, 15, 1, 1.43, 6, NULL, 0, 'disponible', NULL),
(1524, '8', 71, NULL, NULL, 15, 2, 1.23, 22, NULL, 0, 'disponible', NULL),
(1525, '9', 71, NULL, NULL, 15, 3, 1.08, 18, NULL, 0, 'disponible', NULL);

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

--
-- Estructura de tabla para la tabla `peleas_exhibicion`
--

CREATE TABLE `peleas_exhibicion` (
  `id` int(11) NOT NULL,
  `juez_id` int(11) NOT NULL COMMENT 'ID del juez que organiza y arbitra',
  `participante1_nombre` varchar(100) NOT NULL,
  `participante2_nombre` varchar(100) NOT NULL,
  `monto_apuesta` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT 'Monto total de la apuesta (pozo)',
  `comision_juez_pct` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 'Porcentaje de comisión para el juez (ej: 10.00 para 10%)',
  `ganancia_juez` decimal(10,2) GENERATED ALWAYS AS (`monto_apuesta` * `comision_juez_pct` / 100) STORED COMMENT 'Cálculo automático de la ganancia',
  `ganador_nombre` varchar(100) DEFAULT NULL,
  `estado` enum('pendiente','finalizada','cancelada','empate') NOT NULL DEFAULT 'pendiente',
  `fecha_pelea` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Peleas rápidas organizadas por jueces con apuestas.';

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

INSERT INTO `peleas_exhibicion` (`id`, `juez_id`, `participante1_nombre`, `participante2_nombre`, `monto_apuesta`, `comision_juez_pct`, `ganador_nombre`, `estado`, `fecha_pelea`) VALUES
(9, 50, 'Junior betta', 'Grabiel', 10000.00, 10.00, NULL, 'pendiente', '2025-08-18 09:14:27');

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

--
-- Estructura de tabla para la tabla `ranking_temporada`
--

CREATE TABLE `ranking_temporada` (
  `id` int(11) NOT NULL,
  `temporada_id` int(11) NOT NULL,
  `criador_id` int(11) NOT NULL,
  `puntos_totales` int(11) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

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

--
-- Estructura de tabla para la tabla `reglamentos`
--

CREATE TABLE `reglamentos` (
  `id` int(11) NOT NULL,
  `nombre_reglamento` varchar(150) NOT NULL COMMENT 'Nombre descriptivo del conjunto de reglas (Ej: Reglas Oficiales 2024)',
  `descripcion` text DEFAULT NULL COMMENT 'Descripción opcional del reglamento.',
  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),
  `activo` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 = Activo, 0 = Inactivo/Archivado'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena conjuntos de reglas para los eventos.';

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

INSERT INTO `reglamentos` (`id`, `nombre_reglamento`, `descripcion`, `fecha_creacion`, `activo`) VALUES
(1, 'Reglas Peleas Estilo Tailandés (Estándar)', 'Reglamento oficial basado en el documento proporcionado para peleas de Bettas estilo tailandés.', '2025-08-11 22:55:46', 1);

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

--
-- Estructura de tabla para la tabla `reglas`
--

CREATE TABLE `reglas` (
  `id` int(11) NOT NULL,
  `reglamento_id` int(11) NOT NULL COMMENT 'FK que vincula esta regla a un conjunto en la tabla reglamentos',
  `categoria` varchar(100) NOT NULL COMMENT 'Categoría de la regla (Ej: Por Observación, Reglas del Policía)',
  `orden` int(11) NOT NULL DEFAULT 0 COMMENT 'Para mostrar las reglas en el orden correcto dentro de su categoría',
  `descripcion_regla` text NOT NULL COMMENT 'El texto completo de la regla.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Detalle de cada una de las reglas de un reglamento.';

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

INSERT INTO `reglas` (`id`, `reglamento_id`, `categoria`, `orden`, `descripcion_regla`) VALUES
(1, 1, 'COMO SE PIERDE', 1, 'Si el pez abandona la pelea va a Regla POR OBSERVACIÓN.'),
(2, 1, 'COMO SE PIERDE', 2, 'Si el pez muere.'),
(3, 1, 'POR OBSERVACIÓN', 1, 'Si los peces están inactivos por más de 1 minutos, se le pondrá 1 policía en cada lado durante 2 minutos, si no abren, ambos peces van a policía (sí solo abre uno pues el que no abra irá a policía y si aguanta 10 mordidas vuelva al Rin a combate, sino pues pierde) si cada pez tolera sus 10 palos/mordidas continúa el combate y si vuelve a pasar lo mismo otra vez se declarará empate, con la salvedad de que el que más palos tolere será el ganador.'),
(4, 1, 'POR OBSERVACIÓN', 2, 'Si hay un pez abatido (fuera de combate) y el que está en mejor estado no quiere terminar el combate, al pez abatido se le pondrá un minuto para ser Activado por un Juez con un Juche (varita) o con un policía por fuera, si no responde (se activa) pues será declarado Perdedor.'),
(5, 1, 'POR OBSERVACIÓN', 3, 'Si el pez se pone de lado arriba o abajo se le declara INACTIVO y se le pone 10 segundos, de no reaccionar se declarará perdedor.'),
(6, 1, 'POR OBSERVACIÓN', 4, 'Si un pez abate al oponente, pero le coge asco y/o se hembrea se le coloca policías a ambos lados, el que no abra ira a policía, si resiste la prueba del policía continúa el combate. Si vuelve y sucede lo mismo (ambos inactivos) ambos irán a policía, el que más palos tolere es el ganador, si cada pez tolero sus 10 palos el combate es empate.'),
(7, 1, 'REGLAS DEL POLICÍA', 1, 'El pez de prueba debe golpear al oponente 10 veces, ganará el pez que más golpes tolere, si ambos aprueban la pelea será empate. Se aclara que el pez debe tener actitud de pelea, llámese abrir boca o agallas.'),
(8, 1, 'REGLAS DEL POLICÍA', 2, 'El pez que gane utilizando el policía se le contará la pelea como victoria, pero el tiempo de la pelea registrado será el del tiempo límite del evento.'),
(9, 1, 'REGLAS DEL POLICÍA', 3, 'El policía debe ser del mismo peso que los peleadores sin superar una diferencia máxima de 0.05 gramos.'),
(10, 1, 'REGLAS DEL POLICÍA', 4, 'El policía será manejado por el Juez y solo puede activarse dicho policía, no así los ejemplares a probar.'),
(11, 1, 'REGLAS DEL POLICÍA', 5, 'El Rin o Torre dónde esté el Policía deberá tener una altura alrededor de 3\" a 4\" pulgadas.'),
(12, 1, 'REGULACIONES', 1, 'Se espera que los participantes estén presentes al tiempo definido por el organizador.'),
(13, 1, 'REGULACIONES', 2, 'No se permiten armas de ningún tipo.'),
(14, 1, 'REGULACIONES', 3, 'Solo se permiten Bettas Plakat, No se permiten Bettas colas largas, ni Androides, ni Bicolas, ni Manchados, ni enfermos, ni con defectos visibles.'),
(15, 1, 'REGULACIONES', 4, 'Solo se permiten dos casillas por participantes las cuales no pueden competir entre ellas ni sus peces.'),
(16, 1, 'REGULACIONES', 5, 'Diferencia de tolerancia +/- 0.03 gramos. Ejemplo: 1.58 vs 1.61.'),
(17, 1, 'REGULACIONES', 6, 'La pelea será oficial a los 20 minutos. Si un pez muere o corre antes de ser oficial la pelea el participante puede reemplazarlo por otro de menor peso dentro de la escala hasta 0.05 gr. Y si no encuentra un pez sustituto pierde y el otro se declara ganador, aunque no opta por la pelea más rápida, se le computan 90 minutos.'),
(18, 1, 'REGULACIONES', 7, 'Los participantes pueden reemplazar el pez acorde a la escala de tolerancia. Una vez pesados los peces si hay un pez que no tiene oponente dentro de la escala permitida el participante puede reemplazarlo con otro que si este en el rango, si no tiene sustituto será descalificado.'),
(19, 1, 'REGULACIONES', 8, 'El tiempo de pelea reglamentario es de 3:00 horas o el estipulado por el Organizador.'),
(20, 1, 'REGULACIONES', 9, 'El ganador de la pelea más rápida debe superar los 20 minutos de pelea como mínimo, si dicha pelea está por debajo de los 20 minutos entonces se le registra el tiempo de 90 minutos, esta no debe ser determinada por policía.'),
(21, 1, 'REGULACIONES', 10, 'Todo combate que sea decidido con policía no podrá desplazar en tiempo al pez que gane por su propio mérito, ya que el pez que gane con policía se le registrará el tiempo límite de los combates.'),
(22, 1, 'REGULACIONES', 11, 'El pez que tenga que valerse del policía para definir la pelea, si el combate está por debajo de los 180 minutos se le registrara el tiempo del policía, pero si el combate pasa los 180 minutos y es definido por el policía se le registrara el tiempo en curso del combate.'),
(23, 1, 'REGULACIONES', 12, 'La decisión del Juez es IRREFUTABLE luego de finalizado el evento, si el participante tiene alguna objeción debe llamar a Consejo en el mismo instante, solo dicho Consejo puede variar la decisión de un Juez.'),
(24, 1, 'REGULACIONES', 13, 'El sorteo será por la Aplicación y/o por computadora, pelearán sin importar el oponente.'),
(25, 1, 'REGULACIONES', 14, 'Ningún participante puede manipular los rines sin previa autorización de los jueces, es decir, activar, juchar o destapar el Rin antes de concluir el combate, de hacerlo se declarará perdedor.'),
(26, 1, 'REGULACIONES', 15, 'Todo aquel que se niegue a ser Juez cuando se le asigne se le restaran 5 puntos del Ranking, con reincidencia 10 puntos.'),
(27, 1, 'SOBRE EL POLICÍA', 1, 'Se utilizará un policía acorde al tamaño de los oponentes, con tolerancia de 0.05 gr.'),
(28, 1, 'SOBRE EL POLICÍA', 2, 'Los peces para la prueba del policía irán al Rin del policía.'),
(29, 1, 'SOBRE EL POLICÍA', 3, 'El policía será escogido por el Juez.'),
(30, 1, 'SOBRE EL PESAJE', 1, 'El pesaje inicia desde que empiezan a llegar los participantes.'),
(31, 1, 'SOBRE EL PESAJE', 2, 'Una vez pesados el participante no tendrá acceso a los peces.'),
(32, 1, 'SOBRE EL PESAJE', 3, 'Se pesarán un máximo de 4 ejemplares (todos quedan bajo el manejo de los jueces).'),
(33, 1, 'SOBRE EL PESAJE', 4, 'Las peleas inician luego se termine el pesaje y colocación de los oponentes en el rin.'),
(34, 1, 'SOBRE LA PREMIACIÓN', 1, '1er., 2do. y 3er. LUGAR: 3 Victorias más rápidas y/o el menor tiempo acumulado.');

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

--
-- Estructura de tabla para la tabla `resultados_tipos`
--

CREATE TABLE `resultados_tipos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(50) NOT NULL COMMENT 'Nombre legible del resultado (e.g., Victoria Más Rápida)',
  `valor_enum` varchar(50) NOT NULL COMMENT 'Valor técnico para la base de datos (e.g., victoria_rapida)',
  `puntos` int(11) NOT NULL DEFAULT 0 COMMENT 'Puntos otorgados por este resultado'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Define los tipos de resultados posibles y sus puntos asociados';

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

INSERT INTO `resultados_tipos` (`id`, `nombre`, `valor_enum`, `puntos`) VALUES
(1, 'Victoria Más Rápida', 'victoria_rapida', 10),
(2, 'Victoria', 'victoria', 8),
(3, 'Victoria Con Policía', 'victoria_policia', 6),
(4, 'Empate', 'empate', 3),
(5, 'Derrota con Policía', 'derrota_policia', 2),
(6, 'Derrota', 'derrota', 1),
(7, 'Derrota Más Rápida', 'derrota_rapida', 1);

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

--
-- Estructura de tabla para la tabla `temporadas`
--

CREATE TABLE `temporadas` (
  `id` int(11) NOT NULL,
  `ano` year(4) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `activa` tinyint(1) DEFAULT 1,
  `fecha_creacion` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

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

INSERT INTO `temporadas` (`id`, `ano`, `nombre`, `activa`, `fecha_creacion`) VALUES
(1, '2025', 'Temporada Inaugural', 1, '2025-08-08 00:58:21'),
(2, '2025', 'Temporada 2025', 1, '2025-08-08 04:31:20');

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

--
-- Estructura de tabla para la tabla `torneo_grupos`
--

CREATE TABLE `torneo_grupos` (
  `id` int(11) NOT NULL,
  `evento_id` int(11) NOT NULL,
  `ronda` int(11) NOT NULL,
  `mesa_id` int(11) NOT NULL COMMENT 'El grupo al que pertenece, de 1 a 4',
  `criador_id` int(11) NOT NULL COMMENT 'ID del usuario (criador) que pertenece al grupo',
  `posicion_final` int(11) DEFAULT NULL COMMENT 'Posición final en el grupo (1-4) al terminar la ronda'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena la estructura de grupos de un torneo.';

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

--
-- Estructura de tabla para la tabla `vallas`
--

CREATE TABLE `vallas` (
  `id` int(11) NOT NULL,
  `juez_id` int(11) NOT NULL,
  `nombre_valla` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Almacena el nombre de la valla de cada juez.';

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

INSERT INTO `vallas` (`id`, `juez_id`, `nombre_valla`) VALUES
(4, 50, 'Mi Valla');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `camadas`
--
ALTER TABLE `camadas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `criador_id` (`criador_id`),
  ADD KEY `linea_genetica_id` (`linea_genetica_id`);

--
-- Indices de la tabla `casillas`
--
ALTER TABLE `casillas`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_criador_nombre_casilla` (`criador_id`,`nombre_casilla`),
  ADD KEY `idx_evento_id` (`evento_id`);

--
-- Indices de la tabla `colores`
--
ALTER TABLE `colores`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_nombre_color` (`nombre_color`);

--
-- Indices de la tabla `combates`
--
ALTER TABLE `combates`
  ADD PRIMARY KEY (`id`),
  ADD KEY `evento_id` (`evento_id`),
  ADD KEY `mesa_id` (`mesa_id`),
  ADD KEY `juez_id` (`juez_id`),
  ADD KEY `casilla1_id` (`casilla1_id`),
  ADD KEY `pez1_id` (`pez1_id`),
  ADD KEY `casilla2_id` (`casilla2_id`),
  ADD KEY `pez2_id` (`pez2_id`),
  ADD KEY `ganador_casilla_id` (`ganador_casilla_id`),
  ADD KEY `fk_combate_resultado` (`resultado_id`),
  ADD KEY `enfrentamiento_id` (`enfrentamiento_id`);

--
-- Indices de la tabla `criadero_ejemplares`
--
ALTER TABLE `criadero_ejemplares`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_identificador_criador` (`criador_id`,`identificador_unico`),
  ADD KEY `fk_ejemplar_criador` (`criador_id`),
  ADD KEY `fk_ejemplar_camada` (`camada_id`),
  ADD KEY `fk_ejemplar_linea` (`linea_genetica_id`),
  ADD KEY `fk_ejemplar_color` (`color_id`);

--
-- Indices de la tabla `enfrentamientos_rondas`
--
ALTER TABLE `enfrentamientos_rondas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_evento_id` (`evento_id`),
  ADD KEY `idx_participante1_id` (`participante1_id`),
  ADD KEY `idx_participante2_id` (`participante2_id`),
  ADD KEY `idx_ganador_participante_id` (`ganador_id`);

--
-- Indices de la tabla `eventos`
--
ALTER TABLE `eventos`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_evento_temporada` (`temporada_id`),
  ADD KEY `fk_evento_ganador1` (`ganador_1er_lugar_casilla_id`),
  ADD KEY `fk_evento_ganador2` (`ganador_2do_lugar_casilla_id`),
  ADD KEY `fk_evento_ganador3` (`ganador_3er_lugar_casilla_id`),
  ADD KEY `fk_evento_pelea_rapida` (`pelea_mas_rapida_combate_id`),
  ADD KEY `fk_evento_reglamento` (`reglamento_id`);

--
-- Indices de la tabla `inscripciones`
--
ALTER TABLE `inscripciones`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_evento_participante` (`evento_id`,`casilla_id`,`criador_id`),
  ADD KEY `fk_inscripciones_casilla_id` (`casilla_id`),
  ADD KEY `fk_inscripciones_criador_id` (`criador_id`);

--
-- Indices de la tabla `inscripciones_casillas`
--
ALTER TABLE `inscripciones_casillas`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_evento_casilla` (`evento_id`,`casilla_id`),
  ADD KEY `idx_evento_id` (`evento_id`),
  ADD KEY `idx_casilla_id` (`casilla_id`);

--
-- Indices de la tabla `lineas_geneticas`
--
ALTER TABLE `lineas_geneticas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `criador_id` (`criador_id`);

--
-- Indices de la tabla `mesas`
--
ALTER TABLE `mesas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `juez_id` (`juez_id`);

--
-- Indices de la tabla `partidas_casillas`
--
ALTER TABLE `partidas_casillas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_partida_combate` (`combate_id`),
  ADD KEY `idx_evento_casilla` (`evento_id`,`casilla_id`),
  ADD KEY `fk_partida_casilla` (`casilla_id`),
  ADD KEY `fk_partida_resultado` (`resultado_id`);

--
-- Indices de la tabla `peces`
--
ALTER TABLE `peces`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `numero_unico_por_evento` (`event_id`,`numero_unico`),
  ADD UNIQUE KEY `pez_unico_por_evento` (`event_id`,`casilla_id`,`numero_identificacion`,`es_reemplazo`),
  ADD KEY `idx_evento_id` (`event_id`),
  ADD KEY `fk_pez_casilla` (`casilla_id`),
  ADD KEY `camada_id` (`camada_id`);

--
-- Indices de la tabla `peleas_exhibicion`
--
ALTER TABLE `peleas_exhibicion`
  ADD PRIMARY KEY (`id`),
  ADD KEY `juez_id` (`juez_id`),
  ADD KEY `participante1_id` (`participante1_nombre`),
  ADD KEY `participante2_id` (`participante2_nombre`),
  ADD KEY `ganador_id` (`ganador_nombre`);

--
-- Indices de la tabla `ranking_temporada`
--
ALTER TABLE `ranking_temporada`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `ranking_unico` (`temporada_id`,`criador_id`),
  ADD KEY `criador_id` (`criador_id`);

--
-- Indices de la tabla `reglamentos`
--
ALTER TABLE `reglamentos`
  ADD PRIMARY KEY (`id`);

--
-- Indices de la tabla `reglas`
--
ALTER TABLE `reglas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_reglamento_id` (`reglamento_id`);

--
-- Indices de la tabla `resultados_tipos`
--
ALTER TABLE `resultados_tipos`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_valor_enum` (`valor_enum`);

--
-- Indices de la tabla `temporadas`
--
ALTER TABLE `temporadas`
  ADD PRIMARY KEY (`id`);

--
-- Indices de la tabla `torneo_grupos`
--
ALTER TABLE `torneo_grupos`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uk_evento_casilla` (`evento_id`,`criador_id`),
  ADD KEY `fk_torneo_evento` (`evento_id`),
  ADD KEY `fk_torneo_casilla` (`criador_id`);

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

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `camadas`
--
ALTER TABLE `camadas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `casillas`
--
ALTER TABLE `casillas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=107;

--
-- AUTO_INCREMENT de la tabla `colores`
--
ALTER TABLE `colores`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27;

--
-- AUTO_INCREMENT de la tabla `combates`
--
ALTER TABLE `combates`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=557;

--
-- AUTO_INCREMENT de la tabla `criadero_ejemplares`
--
ALTER TABLE `criadero_ejemplares`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `enfrentamientos_rondas`
--
ALTER TABLE `enfrentamientos_rondas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=87;

--
-- AUTO_INCREMENT de la tabla `eventos`
--
ALTER TABLE `eventos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;

--
-- AUTO_INCREMENT de la tabla `inscripciones`
--
ALTER TABLE `inscripciones`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=215;

--
-- AUTO_INCREMENT de la tabla `inscripciones_casillas`
--
ALTER TABLE `inscripciones_casillas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--
-- AUTO_INCREMENT de la tabla `lineas_geneticas`
--
ALTER TABLE `lineas_geneticas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `mesas`
--
ALTER TABLE `mesas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `partidas_casillas`
--
ALTER TABLE `partidas_casillas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=427;

--
-- AUTO_INCREMENT de la tabla `peces`
--
ALTER TABLE `peces`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1526;

--
-- AUTO_INCREMENT de la tabla `peleas_exhibicion`
--
ALTER TABLE `peleas_exhibicion`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT de la tabla `ranking_temporada`
--
ALTER TABLE `ranking_temporada`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `reglamentos`
--
ALTER TABLE `reglamentos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT de la tabla `reglas`
--
ALTER TABLE `reglas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=35;

--
-- AUTO_INCREMENT de la tabla `resultados_tipos`
--
ALTER TABLE `resultados_tipos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT de la tabla `temporadas`
--
ALTER TABLE `temporadas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT de la tabla `torneo_grupos`
--
ALTER TABLE `torneo_grupos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de la tabla `vallas`
--
ALTER TABLE `vallas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `camadas`
--
ALTER TABLE `camadas`
  ADD CONSTRAINT `fk_camada_criador` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_camada_linea` FOREIGN KEY (`linea_genetica_id`) REFERENCES `lineas_geneticas` (`id`) ON DELETE SET NULL;

--
-- Filtros para la tabla `casillas`
--
ALTER TABLE `casillas`
  ADD CONSTRAINT `fk_casilla_criador` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `combates`
--
ALTER TABLE `combates`
  ADD CONSTRAINT `combates_ibfk_1` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`),
  ADD CONSTRAINT `combates_ibfk_3` FOREIGN KEY (`juez_id`) REFERENCES `usuarios` (`id`),
  ADD CONSTRAINT `combates_ibfk_4` FOREIGN KEY (`casilla1_id`) REFERENCES `casillas` (`id`),
  ADD CONSTRAINT `combates_ibfk_5` FOREIGN KEY (`pez1_id`) REFERENCES `peces` (`id`),
  ADD CONSTRAINT `combates_ibfk_6` FOREIGN KEY (`casilla2_id`) REFERENCES `casillas` (`id`),
  ADD CONSTRAINT `combates_ibfk_7` FOREIGN KEY (`pez2_id`) REFERENCES `peces` (`id`),
  ADD CONSTRAINT `combates_ibfk_8` FOREIGN KEY (`ganador_casilla_id`) REFERENCES `casillas` (`id`),
  ADD CONSTRAINT `combates_ibfk_9` FOREIGN KEY (`enfrentamiento_id`) REFERENCES `enfrentamientos_rondas` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_combate_resultado` FOREIGN KEY (`resultado_id`) REFERENCES `resultados_tipos` (`id`);

--
-- Filtros para la tabla `criadero_ejemplares`
--
ALTER TABLE `criadero_ejemplares`
  ADD CONSTRAINT `fk_ejemplar_camada` FOREIGN KEY (`camada_id`) REFERENCES `camadas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_ejemplar_color` FOREIGN KEY (`color_id`) REFERENCES `colores` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_ejemplar_criador` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_ejemplar_linea` FOREIGN KEY (`linea_genetica_id`) REFERENCES `lineas_geneticas` (`id`) ON DELETE SET NULL;

--
-- Filtros para la tabla `enfrentamientos_rondas`
--
ALTER TABLE `enfrentamientos_rondas`
  ADD CONSTRAINT `fk_enfrentamiento_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_er_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_er_ganador` FOREIGN KEY (`ganador_id`) REFERENCES `usuarios` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_er_participante1` FOREIGN KEY (`participante1_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_er_participante2` FOREIGN KEY (`participante2_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `eventos`
--
ALTER TABLE `eventos`
  ADD CONSTRAINT `fk_evento_ganador1` FOREIGN KEY (`ganador_1er_lugar_casilla_id`) REFERENCES `casillas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_evento_ganador2` FOREIGN KEY (`ganador_2do_lugar_casilla_id`) REFERENCES `casillas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_evento_ganador3` FOREIGN KEY (`ganador_3er_lugar_casilla_id`) REFERENCES `casillas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_evento_pelea_rapida` FOREIGN KEY (`pelea_mas_rapida_combate_id`) REFERENCES `combates` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_evento_reglamento` FOREIGN KEY (`reglamento_id`) REFERENCES `reglamentos` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_evento_temporada` FOREIGN KEY (`temporada_id`) REFERENCES `temporadas` (`id`) ON UPDATE CASCADE;

--
-- Filtros para la tabla `inscripciones`
--
ALTER TABLE `inscripciones`
  ADD CONSTRAINT `fk_inscripciones_casilla_id` FOREIGN KEY (`casilla_id`) REFERENCES `casillas` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_inscripciones_criador_id` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_inscripciones_evento_id` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `inscripciones_casillas`
--
ALTER TABLE `inscripciones_casillas`
  ADD CONSTRAINT `fk_inscripciones_casilla` FOREIGN KEY (`casilla_id`) REFERENCES `casillas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_inscripciones_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `lineas_geneticas`
--
ALTER TABLE `lineas_geneticas`
  ADD CONSTRAINT `fk_linea_criador` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `mesas`
--
ALTER TABLE `mesas`
  ADD CONSTRAINT `mesas_ibfk_1` FOREIGN KEY (`juez_id`) REFERENCES `usuarios` (`id`);

--
-- Filtros para la tabla `partidas_casillas`
--
ALTER TABLE `partidas_casillas`
  ADD CONSTRAINT `fk_partida_casilla` FOREIGN KEY (`casilla_id`) REFERENCES `casillas` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_partida_combate` FOREIGN KEY (`combate_id`) REFERENCES `combates` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_partida_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_partida_resultado` FOREIGN KEY (`resultado_id`) REFERENCES `resultados_tipos` (`id`);

--
-- Filtros para la tabla `peces`
--
ALTER TABLE `peces`
  ADD CONSTRAINT `fk_pez_casilla` FOREIGN KEY (`casilla_id`) REFERENCES `casillas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_pez_evento` FOREIGN KEY (`event_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `peleas_exhibicion`
--
ALTER TABLE `peleas_exhibicion`
  ADD CONSTRAINT `fk_pelea_juez` FOREIGN KEY (`juez_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE;

--
-- Filtros para la tabla `ranking_temporada`
--
ALTER TABLE `ranking_temporada`
  ADD CONSTRAINT `ranking_temporada_ibfk_1` FOREIGN KEY (`temporada_id`) REFERENCES `temporadas` (`id`),
  ADD CONSTRAINT `ranking_temporada_ibfk_2` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`);

--
-- Filtros para la tabla `reglas`
--
ALTER TABLE `reglas`
  ADD CONSTRAINT `fk_regla_reglamento` FOREIGN KEY (`reglamento_id`) REFERENCES `reglamentos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `torneo_grupos`
--
ALTER TABLE `torneo_grupos`
  ADD CONSTRAINT `fk_grupo_criador` FOREIGN KEY (`criador_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_torneo_casilla` FOREIGN KEY (`criador_id`) REFERENCES `casillas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_torneo_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_torneo_grupos_casilla` FOREIGN KEY (`criador_id`) REFERENCES `casillas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_torneo_grupos_evento` FOREIGN KEY (`evento_id`) REFERENCES `eventos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Filtros para la tabla `vallas`
--
ALTER TABLE `vallas`
  ADD CONSTRAINT `fk_valla_juez` FOREIGN KEY (`juez_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE;
COMMIT;

