<?php

declare(strict_types=1);

use WebhookMascara\Config;
use WebhookMascara\Queue;

require __DIR__ . '/../vendor/autoload.php';

$config = new Config();
$status = 'ok';
$checks = [];
$code = 200;

try {
    $redis = new Redis();
    $queue = new Queue($config, $redis);
    $queue->connect();
    $checks['redis'] = 'ok';
    $checks['queue_depth'] = $queue->depth();
} catch (Throwable $e) {
    $status = 'degraded';
    $checks['redis'] = 'fail';
    $checks['redis_error'] = $e->getMessage();
    $code = 503;
}

$response = [
    'status' => $status,
    'checks' => $checks,
    'timestamp' => gmdate('c'),
];

http_response_code($code);
header('Content-Type: application/json');
echo json_encode($response, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
