<?php
// ============================================
// CONFIGURATION CENTRALE
// Modifier les valeurs selon votre hébergement
// ============================================

// === DATABASE (cPanel MySQL) ===
define('DB_HOST', 'localhost');
define('DB_NAME', 'benywzxc_hichambouchareb');     // Format Namecheap: cpaneluser_dbname
define('DB_USER', 'benywzxc_hichambouchareb');        // Format: cpaneluser_dbuser
define('DB_PASS', 'JY66}?e7635[');

// === EMAIL CONFIG (cPanel Mail) ===
define('MAIL_HOST', 'hichamboucharebavocat.ma');  // Serveur IMAP/SMTP
define('MAIL_USER', 'contact@hichamboucharebavocat.ma');
define('MAIL_PASS', 'AY(CR92bo}yN');
define('MAIL_IMAP_PORT', 993);    // IMAP SSL
define('MAIL_SMTP_PORT', 465);    // SMTP SSL
define('MAIL_FROM_NAME', 'Maître Hicham Bouchareb');

// === SITE CONFIG ===
define('SITE_NAME', 'Maître Hicham Bouchareb');
define('SITE_URL', 'https://hichamboucharebavocat.ma');
define('ADMIN_EMAIL', 'contact@hichamboucharebavocat.ma');

// === SECURITY ===
define('SESSION_LIFETIME', 3600); // 1 heure
define('LOGIN_MAX_ATTEMPTS', 5);

// === TIMEZONE ===
date_default_timezone_set('UTC+01:00');

// ============================================
// CONNEXION DATABASE (PDO)
// ============================================
function getDB() {
    static $pdo = null;
    if ($pdo === null) {
        try {
            $pdo = new PDO(
                "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4",
                DB_USER,
                DB_PASS,
                [
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                    PDO::ATTR_EMULATE_PREPARES => false,
                ]
            );
        } catch (PDOException $e) {
            die("Erreur de connexion à la base de données. Veuillez contacter l'administrateur.");
        }
    }
    return $pdo;
}

// ============================================
// HELPERS
// ============================================
function escape($string) {
    return htmlspecialchars($string ?? '', ENT_QUOTES, 'UTF-8');
}

function redirect($url) {
    header("Location: $url");
    exit;
}

function getClientIP() {
    return $_SERVER['HTTP_CLIENT_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? 'unknown';
}

function timeAgo($datetime) {
    $time = time() - strtotime($datetime);
    if ($time < 60) return 'à l\'instant';
    if ($time < 3600) return floor($time/60) . ' min';
    if ($time < 86400) return floor($time/3600) . 'h';
    if ($time < 604800) return floor($time/86400) . ' j';
    return date('d/m/Y', strtotime($datetime));
}

function formatDate($datetime) {
    $months = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Août', 'Sep', 'Oct', 'Nov', 'Déc'];
    $ts = strtotime($datetime);
    return date('d', $ts) . ' ' . $months[date('n', $ts)-1] . ' ' . date('Y H:i', $ts);
}
