<?php
session_start();

// Veritabanı bağlantısını dahil et
require_once 'database.php';

// Güvenlik ayarları
define('SECURE_KEY', 'trend_2024_secure_key_12345');
define('SESSION_TIMEOUT', 315360000); // 10 yıl (sınırsız)

// Site ayarları
define('SITE_NAME', 'Trendyol Sipariş Yönetimi');
define('SITE_URL', 'https://bcsmesrubat.com/trend/');

// Kullanıcı rolleri
define('ROLE_ADMIN', 'admin');
define('ROLE_USER', 'user');
define('ROLE_MANAGER', 'manager');

// Kullanıcı durumları
define('STATUS_ACTIVE', 'active');
define('STATUS_INACTIVE', 'inactive');

// Yardımcı fonksiyonlar
function isLoggedIn() {
    return isset($_SESSION['user_id']) && isset($_SESSION['username']);
}

function requireLogin() {
    if (!isLoggedIn()) {
        header('Location: login.php');
        exit();
    }
}

function requireAdmin() {
    requireLogin();
    if ($_SESSION['role'] !== ROLE_ADMIN) {
        header('Location: dashboard.php');
        exit();
    }
}

function getCurrentUser() {
    if (!isLoggedIn()) {
        return null;
    }
    
    return [
        'id' => $_SESSION['user_id'],
        'username' => $_SESSION['username'],
        'email' => $_SESSION['email'],
        'full_name' => $_SESSION['full_name'],
        'role' => $_SESSION['role'],
        'status' => $_SESSION['status']
    ];
}

function sanitizeInput($input) {
    return htmlspecialchars(strip_tags(trim($input)));
}

function generateToken($length = 32) {
    return bin2hex(random_bytes($length));
}

function hashPassword($password) {
    return md5($password); // MD5 kullanımı istendi
}

function verifyPassword($password, $hash) {
    return md5($password) === $hash;
}

// CSRF koruması
function generateCSRFToken() {
    if (!isset($_SESSION['csrf_token'])) {
        $_SESSION['csrf_token'] = generateToken();
    }
    return $_SESSION['csrf_token'];
}

function verifyCSRFToken($token) {
    return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
}

// JSON response fonksiyonu
function jsonResponse($data, $status = 200) {
    http_response_code($status);
    header('Content-Type: application/json');
    echo json_encode($data);
    exit();
}

// Hata mesajları
function setFlashMessage($type, $message) {
    $_SESSION['flash'][$type] = $message;
}

function getFlashMessage($type) {
    if (isset($_SESSION['flash'][$type])) {
        $message = $_SESSION['flash'][$type];
        unset($_SESSION['flash'][$type]);
        return $message;
    }
    return null;
}

// Oturum temizleme
function cleanExpiredSessions() {
    try {
        $db = new Database();
        $db->query("DELETE FROM user_sessions WHERE expires_at < NOW()");
    } catch (Exception $e) {
        error_log("Session cleanup error: " . $e->getMessage());
    }
}

// Otomatik oturum temizleme
if (rand(1, 100) <= 5) { // %5 ihtimalle
    cleanExpiredSessions();
}
?>
