<?php

declare(strict_types=1);

if (PHP_SAPI !== 'cli') {
    http_response_code(403);
    echo "This script can be run only from CLI.\n";
    exit(1);
}

require_once __DIR__ . '/../src/config.php';
require_once __DIR__ . '/../src/history.php';
require_once __DIR__ . '/../src/crm.php';

$items = [
    ['id' => '32200', 'value' => 'Казань'],
    ['id' => '32214', 'value' => 'Ростов на Дону'],
    ['id' => '37691', 'value' => 'Санкт-Петербург'],
    ['id' => '41391', 'value' => 'Ульяновск'],
    ['id' => '41393', 'value' => 'Ижевск'],
    ['id' => '35342', 'value' => 'Не определено'],
];

$checks = [
    'canonical_hyphen' => normalizeBranchNameFromItems('Ростов-на-Дону', $items) === 'Ростов на Дону',
    'canonical_spacing' => normalizeBranchNameFromItems('  Санкт Петербург  ', $items) === 'Санкт-Петербург',
    'ulyanovsk_from_field' => normalizeBranchNameFromItems('Ульяновск', $items) === 'Ульяновск',
    'izhevsk_from_field' => normalizeBranchNameFromItems('Ижевск', $items) === 'Ижевск',
    'undefined_rejected' => normalizeBranchNameFromItems('Не определено', $items) === '',
    'unknown_rejected' => normalizeBranchNameFromItems('Тула', $items) === '',
    'enum_match' => (matchDealBranchEnumValue('Казань', $items)['id'] ?? '') === '32200',
    'undefined_enum_rejected' => matchDealBranchEnumValue('Не определено', $items) === null,
];

$ok = !in_array(false, $checks, true);
echo json_encode([
    'ok' => $ok,
    'checks' => $checks,
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) . PHP_EOL;

exit($ok ? 0 : 1);
