make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap(); \App\Shared\Testing\TestingDatabaseGuard::assertSafe(); $input = json_decode(stream_get_contents(STDIN), true, 32, JSON_THROW_ON_ERROR); app(\App\Shared\Context\CompanyContext::class)->selectFor($input['actor'], $input['tenant'], $input['company'], $input['unit']); $paused = false; $isolation = null; \Illuminate\Support\Facades\DB::listen(function ($query) use (&$paused, &$isolation): void { if (! $paused && str_contains($query->sql, 'from "a_billing_drafts"')) { $paused = true; $isolation = \Illuminate\Support\Facades\DB::selectOne('SHOW transaction_isolation')->transaction_isolation; echo "SNAPSHOT_STARTED\n"; flush(); usleep(2000000); } }); $result = app(\App\Modules\Services\DocumentPreview::class)->read($input['draft'], $input['actor']); echo json_encode(['repeatable_read' => $isolation === 'repeatable read', 'original_issuer' => $result['issuer']['data']['nuit'] === $input['issuer'], 'original_client' => $result['client']['data']['nuit'] === $input['client']], JSON_THROW_ON_ERROR).PHP_EOL;