<?php

declare(strict_types=1);

require_once __DIR__ . '/rest.php';

function listBitrixBots(): array
{
    $response = bitrixCallRaw('imbot.bot.list');

    return is_array($response['result'] ?? null) ? $response['result'] : [];
}

function listBitrixConnectors(): array
{
    $response = bitrixCallRaw('imconnector.list');

    return is_array($response['result'] ?? null) ? $response['result'] : [];
}

function unregisterBitrixBot(int $botId): array
{
    return bitrixCallRaw('imbot.unregister', [
        'BOT_ID' => $botId,
    ]);
}

function unregisterBitrixConnector(string $connectorId): array
{
    return bitrixCallRaw('imconnector.unregister', [
        'ID' => $connectorId,
    ]);
}

function darexBotMatches(array $bot): bool
{
    $code = (string) ($bot['CODE'] ?? '');
    $name = (string) ($bot['NAME'] ?? '');

    foreach ((array) config('BOT_CODE_PREFIXES', []) as $prefix) {
        if ($prefix !== '' && stripos($code, (string) $prefix) === 0) {
            return true;
        }
    }

    foreach ((array) config('BOT_NAME_PREFIXES', []) as $prefix) {
        if ($prefix !== '' && stripos($name, (string) $prefix) === 0) {
            return true;
        }
    }

    return false;
}
