<?php
namespace LivraisonAPI;

class Settings {
    public function __construct() {
        add_action('admin_init', [$this, 'register_settings']);
    }

    public function register_settings() {
        // ✅ CORRECTION: Ajout des sanitize_callback
        register_setting('livraison_api_settings', 'livraison_api_url', array(
            'type' => 'string',
            'sanitize_callback' => 'esc_url_raw',
            'default' => 'https://api.sendi-api.com'
        ));
        
        register_setting('livraison_api_settings', 'livraison_api_key', array(
            'type' => 'string',
            'sanitize_callback' => 'sanitize_text_field',
            'default' => ''
        ));
        
        register_setting('livraison_api_settings', 'livraison_api_currency', array(
            'type' => 'string',
            'sanitize_callback' => 'sanitize_text_field',
            'default' => 'FCFA'
        ));
        
        register_setting('livraison_api_settings', 'livraison_api_auto_send', array(
            'type' => 'string',
            'sanitize_callback' => 'sanitize_text_field',
            'default' => 'yes'
        ));

        add_settings_section(
            'livraison_api_main',
            'Configuration principale',
            [$this, 'section_callback'],
            'livraison_api_settings'
        );

        add_settings_field(
            'livraison_api_url',
            'URL de l\'API',
            [$this, 'render_api_url_field'],
            'livraison_api_settings',
            'livraison_api_main'
        );

        add_settings_field(
            'livraison_api_key',
            'Clé API',
            [$this, 'render_api_key_field'],
            'livraison_api_settings',
            'livraison_api_main'
        );

        add_settings_field(
            'livraison_api_currency',
            'Devise',
            [$this, 'render_currency_field'],
            'livraison_api_settings',
            'livraison_api_main'
        );

        add_settings_field(
            'livraison_api_auto_send',
            'Envoi automatique',
            [$this, 'render_auto_send_field'],
            'livraison_api_settings',
            'livraison_api_main'
        );
    }

    public function section_callback() {
        echo '<p>Configurez les paramètres de connexion à l\'API de livraison.</p>';
    }

    public function render_api_url_field() {
        $default_url = defined('LIVRAISON_API_URL') 
            ? LIVRAISON_API_URL 
            : 'https://sendi-api.com/api/v1';
        $value = get_option('livraison_api_url', $default_url);
        ?>
        <input type="url" name="livraison_api_url" value="<?php echo esc_attr($value); ?>" class="regular-text" />
        <p class="description">URL de l'API Sendi. Par défaut: <code><?php echo esc_html($default_url); ?></code></p>
        <?php
    }

    public function render_api_key_field() {
        $value = get_option('livraison_api_key', '');
        ?>
        <input type="password" name="livraison_api_key" value="<?php echo esc_attr($value); ?>" class="regular-text" />
        <p class="description">Obtenez votre clé API sur votre tableau de bord Sendi.</p>
        <?php
    }

    public function render_currency_field() {
        $value = get_option('livraison_api_currency', 'FCFA');
        ?>
        <input type="text" name="livraison_api_currency" value="<?php echo esc_attr($value); ?>" class="regular-text" />
        <p class="description">Devise utilisée pour les prix (ex: FCFA, XOF).</p>
        <?php
    }

    public function render_auto_send_field() {
        $value = get_option('livraison_api_auto_send', 'yes');
        ?>
        <input type="checkbox" name="livraison_api_auto_send" value="yes" <?php checked('yes', $value); ?> />
        <label>Envoyer automatiquement les commandes à l'API</label>
        <p class="description">Si activé, les commandes WooCommerce seront envoyées automatiquement.</p>
        <?php
    }
}