<?php
/**
 * Gestión del menú de administración de Compibot.
 *
 * @package Compibot
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Agrega el menú de administración de Compibot en el panel de WordPress.
 *
 * @param int $unread_count Número de conversaciones no leídas.
 */
function compibot_add_admin_menu( $unread_count = 0 ) {

	$unread_count = get_transient( 'compibot_unread_count' );
	$unread_count = $unread_count ? $unread_count : 0;

	$menu_title = 'Compibot';

	$menu_title .= ' <span class="update-plugins count-' . esc_attr( $unread_count ) . '"><span class="plugin-count">' . esc_html( $unread_count ) . '</span></span>';

	// Página principal del plugin.
	add_menu_page(
		'Compibot',
		$menu_title,
		'manage_options',
		'compibot',
		array( new CompibotAdminPage(), 'display_page' ),
		plugin_dir_url( __FILE__ ) . '../assets/favicon.ico',
		6
	);

	// Nueva pestaña para la página de inicio de sesión.
	add_submenu_page(
		'compibot',
		'Login Compibot',
		'Login Compibot',
		'manage_options',
		'compibot_login',
		'compibot_login_page'  // Función que muestra la página de inicio de sesión.
	);
}

add_action( 'admin_menu', 'compibot_add_admin_menu' );

add_action( 'admin_menu', 'compibot_remove_login_submenu_based_on_token', 100 );

/**
 * Elimina el submenú de login si el usuario ya ha iniciado sesión en Compibot.
 */
function compibot_remove_login_submenu_based_on_token() {
	$db_manager = new CompibotDatabaseManager();
	$token      = $db_manager->compibot_select( 'token', 'plugin_token_compibot_page', 60 );

	// Si el token no es '0' (o cualquier valor que consideres como "no logueado"), removemos la página de login.
	if ( '0' !== $token && ! empty( $token ) ) {
		remove_submenu_page( 'compibot', 'compibot_login' );
	}
}
