<?php
/**
 * FavMasToKey - Configuration
 */

// Empêcher l'accès direct au fichier
if (!defined('FAVMASTOKEY')) {
    die('Accès direct interdit');
}

// Environnement (development ou production)
define('ENVIRONMENT', 'development');

// Gestion des erreurs selon l'environnement
if (ENVIRONMENT === 'development') {
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // Activer la journalisation pour le débogage
    ini_set('log_errors', 1);
    ini_set('error_log', __DIR__ . '/../debug.log');
} else {
    error_reporting(0);
    ini_set('display_errors', 0);
}

// Configuration de l'application
$config = [
    // Informations de l'application 
    'app_name' => 'FavMasToKey',
    'app_description' => 'Outil de transfert des favoris de Mastodon vers Misskey',
    'app_version' => '0.4.1', // Mise à jour de la version pour le mode ultra-lent
    
    // URL de base - Utilisée pour les liens dans l'application
    'app_url' => 'https://concepts.esenjin.xyz/favmastokey', // Remplacez par l'URL exacte de votre application
    
    // Paramètres Misskey API
    'misskey_api_endpoint' => '/api/notes/favorites/create',
    
    // Paramètres pour le traitement
    'batch_size' => 2,
    'timeout' => 90,
    'max_retries' => 3,
    'delay_between_requests' => 3000,    // Délai normal entre les requêtes (en millisecondes)
    'slow_mode_delay' => 30000,          // Délai par défaut en mode lent (30 secondes)
    'slow_mode_min' => 10000,            // Délai minimum pour le mode lent (10 secondes)
    'slow_mode_max' => 60000,            // Délai maximum pour le mode lent (60 secondes)
    'adaptive_delay_step' => 5000,       // Pas d'augmentation du délai en cas de rate limiting (5 secondes)
    'adaptive_delay_max_increases' => 3   // Nombre maximum d'augmentations automatiques du délai
];

// Session
session_start();

/**
 * Affiche ou journalise des informations de débogage
 *
 * @param mixed $data Les données à déboguer
 * @param string $title Titre optionnel pour faciliter l'identification des logs
 * @param bool $log_to_file Journaliser dans un fichier plutôt que d'afficher
 */
function debug($data, $title = '', $log_to_file = false) {
    if (ENVIRONMENT === 'development') {
        $output = '';
        
        if (!empty($title)) {
            $output .= "=== {$title} ===\n";
        }
        
        if (is_array($data) || is_object($data)) {
            $output .= print_r($data, true);
        } else {
            $output .= $data;
        }
        
        if ($log_to_file) {
            error_log($output);
        } else {
            echo '<pre style="background:#111; color:#eee; padding:10px; border-radius:5px; overflow:auto; max-height:500px;">';
            echo htmlspecialchars($output);
            echo '</pre>';
        }
    }
}