<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit(0);
}

require_once '../config/config.php';

try {
    // POST verilerini al
    $input = json_decode(file_get_contents('php://input'), true);
    
    if (!$input || !isset($input['token'])) {
        http_response_code(400);
        echo json_encode([
            'success' => false,
            'message' => 'Token gerekli'
        ]);
        exit;
    }
    
    $token = $input['token'];
    
    // Token'ı doğrula ve kullanıcı bilgilerini al
    $db = new Database();
    $user = $db->query(
        "SELECT u.id, u.username, u.email, u.full_name, u.role, u.status, u.created_at 
         FROM users u 
         INNER JOIN user_sessions s ON u.id = s.user_id 
         WHERE s.token = ? AND s.expires_at > NOW()",
        [$token]
    )->fetch();
    
    if (!$user) {
        // Token geçersiz veya süresi dolmuş
        http_response_code(401);
        echo json_encode([
            'success' => false,
            'message' => 'Geçersiz veya süresi dolmuş token',
            'error_code' => 'INVALID_TOKEN'
        ]);
        exit;
    }
    
    // Kullanıcı durumunu kontrol et
    if ($user['status'] !== 'active') {
        // Kullanıcı pasif durumda
        
        // Session'ı temizle
        $db->query("DELETE FROM user_sessions WHERE token = ?", [$token]);
        
        http_response_code(403);
        echo json_encode([
            'success' => false,
            'message' => 'Hesabınız pasife alınmıştır. Lütfen yöneticinizle iletişime geçin.',
            'error_code' => 'USER_INACTIVE'
        ]);
        exit;
    }
    
    // Kullanıcı aktif, bilgilerini döndür
    echo json_encode([
        'success' => true,
        'message' => 'Kullanıcı durumu aktif',
        'data' => [
            'user' => [
                'id' => (int)$user['id'],
                'username' => $user['username'],
                'email' => $user['email'],
                'full_name' => $user['full_name'],
                'role' => $user['role'],
                'status' => $user['status'],
                'created_at' => $user['created_at']
            ]
        ]
    ]);
    
} catch (Exception $e) {
    error_log("User status check error: " . $e->getMessage());
    
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'message' => 'Sunucu hatası oluştu'
    ]);
}
?>
