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

class KNSDD_Frontend_Assets {
    /**
     * Ön yüzde gerekli stilleri yükler.
     * JavaScript artık gerekli değil (WooCommerce native notifications kullanılıyor).
     */
    public function enqueue_frontend_assets() {
        // Sadece WooCommerce'in aktif olduğu sayfalarda stil yükle
        if ( function_exists( 'is_woocommerce' ) && 
             ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() || 
               is_shop() || is_product_category() || is_product_tag() || is_product() ) ) {
            
            wp_enqueue_style(
                'knsdd-frontend-css',
                plugins_url( '../../assets/css/components.css', __FILE__ ),
                array(),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0'
            );
            // Iconify stroke ve boyut için override'ları frontend'e de ekle
            wp_enqueue_style(
                'knsdd-vendors-overrides-css',
                plugins_url( '../../assets/css/vendors-overrides.css', __FILE__ ),
                array('knsdd-frontend-css'),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0'
            );

            // Iconify JS (span.iconify için gerekli) - Yerel dosya (WordPress.org uyumluluğu)
            wp_enqueue_script(
                'iconify',
                plugins_url( '../../assets/js/vendor/iconify.min.js', __FILE__ ),
                array(),
                '3.1.1',
                true
            );

            // Paylaşımlı frontend yardımcıları (utils)
            wp_enqueue_script(
                'knsdd-frontend-utils',
                plugins_url( '../../assets/js/frontend-utils.js', __FILE__ ),
                array(),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0',
                true
            );

            // Ürün promosyon metni için AJAX scripti (cache-bypass)
            wp_enqueue_script(
                'knsdd-product-promo',
                plugins_url( '../../assets/js/product-promo.js', __FILE__ ),
                array('knsdd-frontend-utils'),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0',
                true
            );
            wp_localize_script(
                'knsdd-product-promo',
                'KNSDD_Promo',
                array(
                    'ajax_url' => admin_url( 'admin-ajax.php' ),
                    'nonce'    => wp_create_nonce( 'knsdd_promo' ),
                )
            );

            // Kademe tablo stilleri
            wp_enqueue_style(
                'knsdd-tiers-css',
                plugins_url( '../../assets/css/tiers.css', __FILE__ ),
                array('knsdd-frontend-css'),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0'
            );

            // Kademe tablo renk ayarını inline CSS olarak aktar
            $opts = get_option( 'knsdd_global_settings', array() );
            $use_custom = ! empty( $opts['tier_theme_use_custom'] );
            $custom_hex = isset( $opts['tier_theme_color'] ) ? $opts['tier_theme_color'] : '';
            
            // Hex rengi normalize et (# yoksa ekle)
            if ( $custom_hex && ! str_starts_with( $custom_hex, '#' ) ) {
                $custom_hex = '#' . $custom_hex;
            }
            
            // Sanitize hex color
            if ( function_exists('sanitize_hex_color') ) {
                $sanitized = sanitize_hex_color( $custom_hex );
                if ( $sanitized ) {
                    $custom_hex = $sanitized;
                }
            }
            
            // Eğer sanitize başarısız olduysa basit regex kontrolü
            if ( $custom_hex && ! preg_match( '/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/', $custom_hex ) ) {
                $custom_hex = '';
            }
            
            $preset = isset( $opts['tier_theme_preset'] ) ? sanitize_text_field( $opts['tier_theme_preset'] ) : 'blue';
            $palette = array(
                'rose'     => '#f43f5e', // rose-500
                'blue'     => '#3b82f6', // blue-500
                'gray'     => '#6b7280', // gray-500
                'sage'     => '#10b981', // emerald/green-500 (adaçayı benzeri)
                'lavender' => '#8b5cf6', // violet-500
                'amber'    => '#f59e0b', // amber-500
            );
            $brand = '';
            if ( $use_custom && $custom_hex ) {
                $brand = $custom_hex;
            } else {
                $brand = isset( $palette[ $preset ] ) ? $palette[ $preset ] : $palette['blue'];
            }
            if ( $brand ) {
                // Inline CSS ile CSS değişkenini tanımla
                // !important ekleyerek tema/plugin çakışmalarını önle
                $inline_css = '.knsdd-tier-table-wrap{--knsdd-brand-color:' . esc_attr( $brand ) . ' !important;}';
                wp_add_inline_style( 'knsdd-tiers-css', $inline_css );
            }

            // Kademe tablo JS (varyasyon değişiminde güncelleme + ilk yükleme)
            wp_enqueue_script(
                'knsdd-tier-table',
                plugins_url( '../../assets/js/tier-table.js', __FILE__ ),
                array('jquery', 'knsdd-frontend-utils'),
                defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0',
                true
            );
            wp_localize_script(
                'knsdd-tier-table',
                'KNSDD_Tier',
                array(
                    'ajax_url' => admin_url( 'admin-ajax.php' ),
                    'nonce'    => wp_create_nonce( 'knsdd_tier' ),
                )
            );

            // Kademe Tablosu Konumu: Zorla (tema/builder uyumluluğu)
            $opts = isset($opts) && is_array($opts) ? $opts : get_option( 'knsdd_global_settings', array() );
            $tt_enabled = ! empty( $opts['tier_table_enabled'] );
            $tt_force   = ! empty( $opts['tier_table_force'] );
            $tt_loc     = isset( $opts['tier_table_location'] ) ? sanitize_text_field( $opts['tier_table_location'] ) : 'auto';
            if ( function_exists('is_product') && is_product() && $tt_enabled && $tt_force ) {
                wp_enqueue_script(
                    'knsdd-tier-relocator',
                    plugins_url( '../../assets/js/tier-relocator.js', __FILE__ ),
                    array('jquery', 'knsdd-frontend-utils'),
                    defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0',
                    true
                );
                wp_localize_script(
                    'knsdd-tier-relocator',
                    'KNSDD_TierReloc',
                    array(
                        'force'    => true,
                        'location' => $tt_loc,
                        // Hedef seçiciler: tema/builder bağımsız, çoklu adaylar virgülle ayrılmış
                        'selectors' => array(
                            // Builder/tema widget alanlarında SADECE .price düğümleri hedeflenir (konteynerler hariç)
                            'price'  => '.single-product .product .summary .price, .single-product .product .entry-summary .price, .summary .price, .elementor-widget-woocommerce-product-price .price, [data-widget_type="woocommerce-product-price.default"] .price, .elementor-widget-wd_products .price, [data-widget_type*="wd_products"] .price, .price',
                            'form'   => 'form.cart',
                            'button' => '.single_add_to_cart_button'
                        ),
                        'debounce' => 120,
                    )
                );
            }

            // Ürün Mesajı Konumu: Zorla (tema/builder uyumluluğu)
            $pm_force = ! empty( $opts['product_message_force'] );
            $pm_loc   = isset( $opts['product_message_location'] ) ? sanitize_text_field( $opts['product_message_location'] ) : 'auto';
            if ( function_exists('is_product') && is_product() && $pm_force ) {
                wp_enqueue_script(
                    'knsdd-message-relocator',
                    plugins_url( '../../assets/js/message-relocator.js', __FILE__ ),
                    array('jquery', 'knsdd-frontend-utils'),
                    defined('KNSDD_VERSION') ? KNSDD_VERSION : '1.0.0',
                    true
                );
                wp_localize_script(
                    'knsdd-message-relocator',
                    'KNSDD_MsgReloc',
                    array(
                        'force'    => true,
                        'location' => $pm_loc,
                        'selectors' => array(
                            // Elementor & WoodMart: SADECE .price düğümleri hedeflenir (konteynerler hariç)
                            'price'  => '.single-product .product .summary .price, .single-product .product .entry-summary .price, .summary .price, .elementor-widget-woocommerce-product-price .price, [data-widget_type="woocommerce-product-price.default"] .price, .elementor-widget-wd_products .price, [data-widget_type*="wd_products"] .price, .price',
                            'form'   => 'form.cart',
                            'button' => '.single_add_to_cart_button'
                        ),
                        'debounce' => 120,
                    )
                );
            }
        }
        
        // JavaScript yüklemesi kaldırıldı - artık tablo konumlandırma gerekmez
    }
}
