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']); if ($input['pause'] ?? false) { $paused=false; \Illuminate\Support\Facades\DB::listen(function ($query) use (&$paused): void { if (!$paused && str_contains($query->sql,'"companies"') && str_contains($query->sql,'for update')) { $paused=true; echo "LOCK_HELD\n"; flush(); usleep(1500000); } }); } $result=app(\App\Modules\Services\ServiceCalculation::class)->calculate($input['draft'],$input['actor'],$input['command']); echo json_encode($result,JSON_THROW_ON_ERROR).PHP_EOL;