<?php
/**
 * Handles plugin settings and options
 */

if (!defined('ABSPATH')) {
    exit;
}

class HVAC_Settings {
    public function __construct() {
        add_action('admin_menu', array($this, 'add_admin_menu'));
        add_action('admin_init', array($this, 'register_settings'));
        add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
    }

    public function add_admin_menu() {
        // Add main menu page
        add_menu_page(
            __('HVAC Community Events', 'hvac-ce'),
            __('HVAC Community Events', 'hvac-ce'),
            'manage_options',
            'hvac-community-events',
            array($this, 'options_page'),
            'dashicons-calendar-alt',
            30
        );
        
        // Add settings submenu
        add_submenu_page(
            'hvac-community-events',
            __('Settings', 'hvac-ce'),
            __('Settings', 'hvac-ce'),
            'manage_options',
            'hvac-community-events',
            array($this, 'options_page')
        );
        
        // Add dashboard submenu
        add_submenu_page(
            'hvac-community-events',
            __('Dashboard', 'hvac-ce'),
            __('Dashboard', 'hvac-ce'),
            'manage_options',
            'hvac-ce-dashboard',
            array($this, 'dashboard_page')
        );
        
        // Add trainer login link submenu
        $training_login_url = home_url('training-login');
        add_submenu_page(
            'hvac-community-events',
            __('Trainer Login', 'hvac-ce'),
            __('Trainer Login', 'hvac-ce'),
            'manage_options',
            $training_login_url,
            null
        );
    }

    public function register_settings() {
        register_setting('hvac_ce_options', 'hvac_ce_options');
        
        add_settings_section(
            'hvac_ce_main',
            __('HVAC Community Events Settings', 'hvac-ce'),
            array($this, 'settings_section_callback'),
            'hvac-ce'
        );

        add_settings_field(
            'notification_emails',
            __('Trainer Notification Emails', 'hvac-ce'),
            array($this, 'notification_emails_callback'),
            'hvac-ce',
            'hvac_ce_main'
        );
    }

    public function settings_section_callback() {
        echo '<p>' . __('Configure settings for HVAC Community Events', 'hvac-ce') . '</p>';
    }

    public function notification_emails_callback() {
        $options = get_option('hvac_ce_options');
        echo '<input type="text" name="hvac_ce_options[notification_emails]" value="' . 
             esc_attr($options['notification_emails'] ?? '') . '" class="regular-text">';
        echo '<p class="description">' . 
             __('Comma-separated list of emails to notify when new trainers register', 'hvac-ce') . '</p>';
    }

    public function options_page() {
        $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'general';
        
        $tabs = array(
            'general' => __( 'General Settings', 'hvac-ce' ),
        );
        
        // Allow other classes to add tabs
        $tabs = apply_filters( 'hvac_ce_settings_tabs', $tabs );
        ?>
        <div class="wrap">
            <h1><?php esc_html_e('HVAC Community Events Settings', 'hvac-ce'); ?></h1>
            
            <h2 class="nav-tab-wrapper">
                <?php foreach ( $tabs as $tab_key => $tab_label ): ?>
                    <a href="?page=hvac-community-events&tab=<?php echo esc_attr( $tab_key ); ?>" 
                       class="nav-tab <?php echo $active_tab === $tab_key ? 'nav-tab-active' : ''; ?>">
                        <?php echo esc_html( $tab_label ); ?>
                    </a>
                <?php endforeach; ?>
            </h2>
            
            <?php if ( $active_tab === 'general' ): ?>
                <form method="post" action="options.php">
                    <?php
                    settings_fields('hvac_ce_options');
                    do_settings_sections('hvac-ce');
                    submit_button();
                    ?>
                </form>
            <?php else: ?>
                <?php do_action( 'hvac_ce_settings_content', $active_tab ); ?>
            <?php endif; ?>
        </div>
        <?php
    }
    
    /**
     * Dashboard page callback
     */
    public function dashboard_page() {
        // Load the admin dashboard class
        if (!class_exists('HVAC_Admin_Dashboard')) {
            require_once HVAC_PLUGIN_DIR . 'includes/admin/class-admin-dashboard.php';
        }
        
        $dashboard = new HVAC_Admin_Dashboard();
        $dashboard->render_page();
    }
    
    /**
     * Enqueue admin scripts and styles
     */
    public function enqueue_admin_scripts($hook) {
        // Only load on HVAC admin pages
        if (strpos($hook, 'hvac-community-events') !== false) {
            // Add inline script to make trainer login link open in new tab
            $script = "
            jQuery(document).ready(function($) {
                // Find the trainer login menu link and make it open in new tab
                $('a[href*=\"training-login\"]').attr('target', '_blank');
            });
            ";
            wp_add_inline_script('jquery', $script);
        }
    }
}