<?php
if ( ! defined( 'ABSPATH' ) ) { exit; }

/**
 * KNSDD_Admin_Menu Class
 *
 * Eklentinin admin menü yapısını oluşturur.
 */
class KNSDD_Admin_Menu {

    /** @var KNSDD_Page_Rules */
    private $rules_page;

    /** @var KNSDD_Page_Settings */
    private $settings_page;

    /** @var KNSDD_Page_Groups */
    private $groups_page;

    // Smoke Test sayfası devre dışı

    public function __construct() {
        // Sayfa sınıflarını en başta yükle ve başlat.
        require_once KNSDD_PLUGIN_DIR . 'includes/admin/pages/class-knsdd-page-rules.php';
        require_once KNSDD_PLUGIN_DIR . 'includes/admin/pages/class-knsdd-page-settings.php';
        require_once KNSDD_PLUGIN_DIR . 'includes/admin/pages/class-knsdd-page-groups.php';
        // Smoke Test sayfası devre dışı bırakıldı

        $this->rules_page    = new KNSDD_Page_Rules();
        $this->settings_page = new KNSDD_Page_Settings();
        $this->groups_page   = new KNSDD_Page_Groups();
        // $this->smoke_page devre dışı

        add_action( 'admin_menu', array( $this, 'setup_admin_menu' ) );
    }

    /**
     * Ana menüyü ve alt menü sayfalarını oluşturur.
     */
    public function setup_admin_menu() {
        // Ana Menü Sayfası
        // Artık ana menüye tıklandığında varsayılan olarak Grup Yönetimi açılsın.
        
        // Menü ikonu: assets/images/menu-icon.svg dosyasını base64 olarak yükle
        $icon_path = KNSDD_PLUGIN_DIR . 'assets/images/menu-icon.svg';
        $menu_icon = 'dashicons-tag'; // Fallback
        if ( file_exists( $icon_path ) ) {
            $icon_svg = file_get_contents( $icon_path );
            $menu_icon = 'data:image/svg+xml;base64,' . base64_encode( $icon_svg );
        }
        
        add_menu_page(
            __( 'Kns Dynamic Discounts', 'kns-dynamic-discounts-for-woocommerce' ),
            __( 'Kns Dynamic Discounts', 'kns-dynamic-discounts-for-woocommerce' ),
            'manage_options',
            'knsdd-groups', // Varsayılan slug'ı 'knsdd-groups' olarak değiştirdik.
            array( $this, 'render_groups_page' ), // Varsayılan fonksiyonu grup sayfası olarak değiştirdik.
            $menu_icon,
            30
        );

        // YENİ SIRALAMA
        // 1. Alt Menü: Grup Yönetimi
        add_submenu_page(
            'knsdd-groups', // Üst menünün yeni slug'ı
            __( 'Grup Yönetimi', 'kns-dynamic-discounts-for-woocommerce' ),
            __( 'Grup Yönetimi', 'kns-dynamic-discounts-for-woocommerce' ),
            'manage_options',
            'knsdd-groups', // Bu, üst menüyle aynı slug'a sahip olmalı.
            array( $this, 'render_groups_page' )
        );

        // 2. Alt Menü: Kural Yönetimi
        add_submenu_page(
            'knsdd-groups', // Üst menünün yeni slug'ı
            __( 'Kural Yönetimi', 'kns-dynamic-discounts-for-woocommerce' ),
            __( 'Kural Yönetimi', 'kns-dynamic-discounts-for-woocommerce' ),
            'manage_options',
            'knsdd-rules',
            array( $this, 'render_rules_page' )
        );

        // 5. Alt Menü: Ayarlar (sona alındı)
        add_submenu_page(
            'knsdd-groups', // Üst menünün yeni slug'ı
            __( 'Ayarlar', 'kns-dynamic-discounts-for-woocommerce' ),
            __( 'Ayarlar', 'kns-dynamic-discounts-for-woocommerce' ),
            'manage_options',
            'knsdd-settings',
            array( $this, 'render_settings_page' )
        );

        // Smoke Test alt menüsü devre dışı bırakıldı
    }

    /**
     * Kural Yönetimi sayfasını render eder.
     */
    public function render_rules_page() {
        $this->rules_page->render_page();
    }

    /**
     * Grup Yönetimi sayfasını render eder.
     */
    public function render_groups_page() {
        $this->groups_page->render_page();
    }

    /**
     * Ayarlar sayfasını render eder.
     */
    public function render_settings_page() {
        $this->settings_page->render_page();
    }

    // Smoke Test render metodu devre dışı
}
