<?php

declare(strict_types=1);

// Postavi odgovarajući Content-Type za response
header('Content-Type: application/json');

// Proveri da li je metoda POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['error' => 'Only POST method allowed']);
    exit;
}

// Učitaj JSON payload
$rawInput = file_get_contents('php://input');
$data = json_decode($rawInput, true);

// Provera validnosti JSON inputa
if (!isset($data['number'], $data['type'])) {
    http_response_code(400);
    echo json_encode(['error' => 'Invalid JSON structure']);
    exit;
}

// Dozvoljeni ENUM tipovi
$validTypes = ['NOT_EXISTING_NUMBER', 'FORBIDDEN_NUMBER'];
$validReasons = ['UNREGISTRED_NUMBER', 'LIMIT_EXCEEDED', 'PAYMENT_EXPIRED'];

// Validiraj ENUM polje "type"
if (!in_array($data['type'], $validTypes, true)) {
    http_response_code(400);
    echo json_encode(['error' => 'Invalid type value']);
    exit;
}

// Logika za odluku
$allowed = false;
$reason = 'UNREGISTRED_NUMBER'; // default

if ($data['type'] === 'FORBIDDEN_NUMBER') {
    $reason = 'LIMIT_EXCEEDED';
} elseif ($data['type'] === 'NOT_EXISTING_NUMBER') {
    $reason = 'PAYMENT_EXPIRED';
}

// Response
echo json_encode([
    'allowed' => $allowed,
    'reason' => $reason,
]);