<?php
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';

$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();

$state = $objectManager->get(\Magento\Framework\App\State::class);
$state->setAreaCode('frontend');

$connection = $objectManager->get(\Magento\Framework\App\ResourceConnection::class)->getConnection();

$maskedCartId = 'Na6CiXgKZBzM1Ixl4MMQbyNsVfGuuBnC';

// Check the quote directly in database
$sql = "SELECT 
    q.entity_id,
    q.store_id,
    q.created_at,
    q.updated_at,
    q.is_active,
    q.is_virtual,
    q.is_multi_shipping,
    q.items_count,
    q.items_qty,
    q.customer_id,
    q.customer_email,
    q.customer_is_guest,
    q.customer_note_notify,
    q.customer_group_id,
    q.customer_firstname,
    q.customer_lastname,
    q.reserved_order_id,
    qm.masked_id,
    qm.quote_id
FROM quote q
LEFT JOIN quote_id_mask qm ON qm.quote_id = q.entity_id
WHERE qm.masked_id = :masked_id";

$result = $connection->fetchRow($sql, ['masked_id' => $maskedCartId]);

if ($result) {
    echo "Quote Details:" . PHP_EOL;
    echo "==============" . PHP_EOL;
    echo "Quote ID: " . $result['entity_id'] . PHP_EOL;
    echo "Masked ID: " . $result['masked_id'] . PHP_EOL;
    echo "Store ID: " . $result['store_id'] . PHP_EOL;
    echo "Is Active: " . ($result['is_active'] ? 'Yes' : 'No') . PHP_EOL;
    echo "Customer ID: " . ($result['customer_id'] ?: 'NULL (Guest)') . PHP_EOL;
    echo "Customer Email: " . $result['customer_email'] . PHP_EOL;
    echo "Customer Is Guest: " . ($result['customer_is_guest'] ? 'Yes' : 'No') . PHP_EOL;
    echo "Customer Group ID: " . $result['customer_group_id'] . PHP_EOL;
    echo "Items Count: " . $result['items_count'] . PHP_EOL;
    echo "Created: " . $result['created_at'] . PHP_EOL;
    echo "Updated: " . $result['updated_at'] . PHP_EOL;
    echo PHP_EOL;
    
    // Check items
    $itemsSql = "SELECT 
        item_id,
        product_id,
        sku,
        name,
        qty,
        price
    FROM quote_item
    WHERE quote_id = :quote_id
    AND parent_item_id IS NULL";
    
    $items = $connection->fetchAll($itemsSql, ['quote_id' => $result['entity_id']]);
    
    echo "Quote Items:" . PHP_EOL;
    echo "============" . PHP_EOL;
    foreach ($items as $item) {
        echo "- SKU: " . $item['sku'] . PHP_EOL;
        echo "  Name: " . $item['name'] . PHP_EOL;
        echo "  Qty: " . $item['qty'] . PHP_EOL;
        echo "  Price: " . $item['price'] . PHP_EOL;
        echo PHP_EOL;
    }
} else {
    echo "Quote with masked ID '$maskedCartId' not found!" . PHP_EOL;
}

// Check if there's any custom routing or authentication
echo PHP_EOL . "Checking payment method availability:" . PHP_EOL;
echo "====================================" . PHP_EOL;

$scopeConfig = $objectManager->get(\Magento\Framework\App\Config\ScopeConfigInterface::class);
$isGuestCheckoutEnabled = $scopeConfig->getValue(
    'checkout/options/guest_checkout',
    \Magento\Store\Model\ScopeInterface::SCOPE_STORE
);

echo "Guest checkout enabled: " . ($isGuestCheckoutEnabled ? 'Yes' : 'No') . PHP_EOL;

// Check for product-specific issues
if ($result) {
    echo PHP_EOL . "Checking product details:" . PHP_EOL;
    echo "========================" . PHP_EOL;
    
    foreach ($items as $item) {
        $productSql = "SELECT 
            p.entity_id,
            p.sku,
            p.type_id,
            p.status,
            p.visibility,
            si.is_in_stock,
            si.qty as stock_qty,
            cpei.value as keep_out_of_stock
        FROM catalog_product_entity p
        LEFT JOIN cataloginventory_stock_item si ON si.product_id = p.entity_id
        LEFT JOIN catalog_product_entity_int cpei ON cpei.entity_id = p.entity_id 
            AND cpei.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'keep_out_of_stock' AND entity_type_id = 4)
        WHERE p.entity_id = :product_id";
        
        $product = $connection->fetchRow($productSql, ['product_id' => $item['product_id']]);
        
        if ($product) {
            echo "Product: " . $product['sku'] . PHP_EOL;
            echo "  Type: " . $product['type_id'] . PHP_EOL;
            echo "  Status: " . ($product['status'] == 1 ? 'Enabled' : 'Disabled') . PHP_EOL;
            echo "  In Stock: " . ($product['is_in_stock'] ? 'Yes' : 'No') . PHP_EOL;
            echo "  Stock Qty: " . $product['stock_qty'] . PHP_EOL;
            echo "  Keep Out of Stock: " . ($product['keep_out_of_stock'] ? 'Yes' : 'No') . PHP_EOL;
            echo PHP_EOL;
        }
    }
}
