<?php
namespace LivraisonAPI;

class Main {
    
    /**
     * Constructeur public
     */
    public function __construct() {
        $this->init_components();
        $this->init_hooks();
    }
    
    /**
     * Initialiser les composants
     */
    private function init_components() {
        // API
        if (class_exists('LivraisonAPI\API')) {
            new API();
        }
        
        // Admin
        if (is_admin() && class_exists('LivraisonAPI\Admin')) {
            new Admin();
        }
        
        // Ajax
        if (class_exists('LivraisonAPI\Ajax')) {
            new Ajax();
        }
        
        // WooCommerce
        if (class_exists('WooCommerce') && class_exists('LivraisonAPI\WooCommerce')) {
            new WooCommerce();
        }
        
        // Shortcodes
        if (class_exists('LivraisonAPI\Shortcodes')) {
            new Shortcodes();
        }
        
        // Settings
        if (class_exists('LivraisonAPI\Settings')) {
            new Settings();
        }
        
        // Webhook
        if (class_exists('LivraisonAPI\Webhook')) {
            new Webhook();
        }
    }
    
    /**
     * Initialiser les hooks
     */
    private function init_hooks() {
        add_action('init', [$this, 'on_init']);
        add_action('wp_enqueue_scripts', [$this, 'enqueue_frontend_assets']);
        add_action('admin_enqueue_scripts', [$this, 'enqueue_admin_assets']);
    }
    
    /**
     * Hook init - Charger les traductions
     */
    public function on_init() {
        // ✅ CORRECTION: Supprimer load_plugin_textdomain car WordPress 4.6+ le gère automatiquement
        // WordPress charge automatiquement les fichiers .mo depuis /languages
        // La fonction load_plugin_textdomain n'est plus nécessaire
    }
    
    /**
     * Charger les assets front-end
     */
    public function enqueue_frontend_assets() {
        // CSS
        wp_enqueue_style(
            'sendi-api-frontend',
            LIVRAISON_API_PLUGIN_URL . 'assets/css/frontend.css',
            [],
            LIVRAISON_API_VERSION
        );
        
        // JS
        wp_enqueue_script(
            'sendi-api-frontend',
            LIVRAISON_API_PLUGIN_URL . 'assets/js/frontend.js',
            ['jquery'],
            LIVRAISON_API_VERSION,
            true
        );
        
        // Variables pour AJAX
        wp_localize_script('sendi-api-frontend', 'livraison_ajax', [
            'ajax_url' => admin_url('admin-ajax.php'),
            'nonce'    => wp_create_nonce('livraison_api_nonce'),
            'api_url'  => LIVRAISON_API_URL,
            'currency' => get_option('livraison_api_currency', 'FCFA'),
        ]);
    }
    
   /**
 * Charger les assets admin
 */
public function enqueue_admin_assets($hook) {
    if (strpos($hook, 'sendi-api') === false) {
        return;
    }
    
    // Dashboard
    if ('toplevel_page_sendi-api-dashboard' === $hook) {
        wp_enqueue_style(
            'livraison-admin-dashboard',
            LIVRAISON_API_PLUGIN_URL . 'assets/css/admin-dashboard.css',
            [],
            LIVRAISON_API_VERSION
        );
    }
    
    // Orders
    if ('sendi-api_page_sendi-api-orders' === $hook) {
        wp_enqueue_style(
            'livraison-admin-orders',
            LIVRAISON_API_PLUGIN_URL . 'assets/css/admin-orders.css',
            [],
            LIVRAISON_API_VERSION
        );
        
        wp_enqueue_script(
            'livraison-admin-orders',
            LIVRAISON_API_PLUGIN_URL . 'assets/js/admin-orders.js',
            ['jquery'],
            LIVRAISON_API_VERSION,
            true
        );
    }
    
    // Settings
    if ('sendi-api_page_sendi-api-settings' === $hook) {
        wp_enqueue_style(
            'livraison-admin-settings',
            LIVRAISON_API_PLUGIN_URL . 'assets/css/admin-settings.css',
            [],
            LIVRAISON_API_VERSION
        );
        
        wp_enqueue_script(
            'livraison-admin-settings',
            LIVRAISON_API_PLUGIN_URL . 'assets/js/admin-settings.js',
            ['jquery'],
            LIVRAISON_API_VERSION,
            true
        );
    }
}
}