<?php
// Prevent direct access to this file
if (!defined('CYLA_CORE')) {
    header('HTTP/1.0 403 Forbidden');
    exit('Accès direct interdit');
}

// Site configuration
define('SITE_NAME', 'Cyla');
define('SITE_VERSION', '3.0.2');
define('SITE_URL', 'https://concepts.esenjin.xyz/cyla/');

// Files configuration
define('LEGACY_UPLOAD_DIRS', [
    __DIR__ . '/v1/img/fichiers/',
    __DIR__ . '/v2/file/'
]);
define('UPLOAD_DIR', __DIR__ . '/fichiers/');
define('MAX_FILE_SIZE', 100 * 1024 * 1024); // 100 Mo en octets
define('ALLOWED_EXTENSIONS', [
    'png', 'jpg', 'jpeg', 'gif', 'webm', 'mp4', 'wmv',
    'mp3', 'flac', 'ogg', 'zip', 'css', 'pdf',
    'zip', 'rar', 'm3u', 'm3u8', 'txt'
]);

// Preview configuration
define('PREVIEW_IMAGES', ['png', 'jpg', 'jpeg', 'gif']);
define('PREVIEW_VIDEOS', ['webm', 'mp4', 'wmv']);
define('PREVIEW_AUDIOS', ['mp3', 'flac', 'ogg']);
define('PREVIEW_TEXTS', ['txt', 'css', 'm3u', 'm3u8']);

// Security configuration
define('HASH_ALGO', 'sha256'); // Algorithme de hachage pour les mots de passe
define('SALT_LENGTH', 32); // Longueur du sel pour le hachage

// Admin users (format: 'username' => ['password' => 'hashed_password', 'salt' => 'random_salt'])
$ADMIN_USERS = [
    'admin' => [
        'password' => 'a94637ad7685d8a3e64c97eddd7751a0ff55434a607361b7304edf41b39ab7f8', // Default: 'password'
        'salt' => 'defaultsalt123'
    ]
];

// Session configuration
define('SESSION_LIFETIME', 3600); // Durée de vie de la session en secondes (1 heure)
define('SESSION_NAME', 'CYLA_SESSION');

// Error reporting
define('DEBUG_MODE', false); // À mettre à false en production
if (DEBUG_MODE) {
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
} else {
    error_reporting(0);
    ini_set('display_errors', 0);
}

// Fonction pour vérifier si une extension est autorisée
function isAllowedExtension($extension) {
    return in_array(strtolower($extension), ALLOWED_EXTENSIONS);
}

// Fonction pour vérifier si un fichier peut avoir un aperçu
function canPreview($extension) {
    $extension = strtolower($extension);
    return in_array($extension, PREVIEW_IMAGES) ||
           in_array($extension, PREVIEW_VIDEOS) ||
           in_array($extension, PREVIEW_AUDIOS) ||
           in_array($extension, PREVIEW_TEXTS);
}

// Fonction pour obtenir le type d'aperçu
function getPreviewType($extension) {
    $extension = strtolower($extension);
    if (in_array($extension, PREVIEW_IMAGES)) return 'image';
    if (in_array($extension, PREVIEW_VIDEOS)) return 'video';
    if (in_array($extension, PREVIEW_AUDIOS)) return 'audio';
    if (in_array($extension, PREVIEW_TEXTS)) return 'text';
    return 'none';
}