<?php
/**
 * ملف المصادقة والتحقق من صلاحيات المدير
 * api/admin/includes/auth.php
 */

function validateAdminToken() {
    $headers = getallheaders();
    $token = null;
    
    if (isset($headers['Authorization'])) {
        $token = str_replace('Bearer ', '', $headers['Authorization']);
    } elseif (isset($_SERVER['HTTP_AUTHORIZATION'])) {
        $token = str_replace('Bearer ', '', $_SERVER['HTTP_AUTHORIZATION']);
    }
    
    if (!$token) {
        http_response_code(401);
        echo json_encode(['error' => 'لم يتم توفير رمز المصادقة']);
        exit();
    }
    
    $tokenData = json_decode(base64_decode($token), true);
    
    if (!$tokenData || !isset($tokenData['user_id'])) {
        http_response_code(401);
        echo json_encode(['error' => 'رمز المصادقة غير صالح']);
        exit();
    }
    
    if (isset($tokenData['exp']) && $tokenData['exp'] < time()) {
        http_response_code(401);
        echo json_encode(['error' => 'انتهت صلاحية رمز المصادقة']);
        exit();
    }
    
    return $tokenData;
}

function generateAdminToken($userId, $role, $name = '') {
    $payload = [
        'user_id' => $userId,
        'role' => $role,
        'name' => $name,
        'exp' => time() + 86400
    ];
    return base64_encode(json_encode($payload));
}
?>