DELIMITER $$

CREATE PROCEDURE registrar_intento_hakeo(
    IN  p_profesor_id INT,
    OUT p_intento_id BIGINT,       -- devuelve el id del intento insertado, o 0 si bloqueado
    OUT p_mensaje VARCHAR(255)     -- indica si se registró o si debe esperar
)
BEGIN
    DECLARE v_intentosHoy INT;

    -- Contar intentos en el día actual según hora de Costa Rica (UTC-6)
    SELECT COUNT(*) 
    INTO v_intentosHoy
    FROM intentos_ataque
    WHERE profesor_id = p_profesor_id
      AND DATE(CONVERT_TZ(fechaAtaque, '+00:00', '-06:00')) = CURDATE();

    IF v_intentosHoy >= 6 THEN
        -- Límite alcanzado: no insertar
        SET p_intento_id = 0;
        SET p_mensaje = 'Espere 24 horas';
    ELSE
        -- Insertar intento y devolver id
        INSERT INTO intentos_ataque (profesor_id, cantidad_veces_bloqueada)
        VALUES (p_profesor_id, v_intentosHoy + 1);

        SET p_intento_id = LAST_INSERT_ID();
        SET p_mensaje = 'Intento registrado';
    END IF;
END$$

DELIMITER ;
