<?php
declare(strict_types=1);

// Review gate only. This file deliberately has no DB, HTTP, DML, or Cache client.
const APPROVAL = 'CDX_WELLAND_DATES_REVIEW_GATE_20261002_V1';
if (!hash_equals(APPROVAL, (string)getenv('CDX_WELLAND_DATES_APPROVAL'))) {
    echo "default_deny; database_connected=false; http_sent=false; cache_accessed=false\n";
    exit(78);
}
if (!hash_equals((string)hash_file('sha256', __FILE__),
        (string)getenv('CDX_WELLAND_DATES_PROBE_SHA256'))) {
    fwrite(STDERR, "Reviewed draft SHA required\n");
    exit(2);
}
$target = (string)getenv('CDX_WELLAND_DATES_TARGET');
if (!in_array($target, ['A', 'B', 'C'], true)) {
    fwrite(STDERR, "Explicit A/B/C target required\n");
    exit(2);
}
$port = ['A' => 18105, 'B' => 18101, 'C' => 18102][$target];
$fullId = (string)getenv('CDX_WELLAND_DATES_FULL_USER_ID');
$emptyId = (string)getenv('CDX_WELLAND_DATES_EMPTY_USER_ID');
if (!ctype_digit($fullId) || !ctype_digit($emptyId)
    || (int)$fullId <= 0 || (int)$emptyId <= 0 || $fullId === $emptyId) {
    fwrite(STDERR, "Two distinct synthetic user IDs required\n");
    exit(2);
}
echo "review_gate_ready; target={$target}; loopback_port={$port}; "
    . "synthetic_user_ids_supplied=true; database_connected=false; "
    . "http_sent=false; cache_accessed=false; execution_requires_separate_runner_approval=true\n";
