Files
Investidor-V2/tools/portal-next-inspect-qa.php
T
nala 287e991486
tests / ci (push) Waiting to run
oportunidades 7
2026-10-13 11:40:29 +02:00

25 lines
1.8 KiB
PHP

<?php
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Support\Facades\DB;
$root = dirname(__DIR__);
require $root.'/vendor/autoload.php';
require __DIR__.'/portal-qa-environment.php';
$target = portalQaEnvironment();
$app = require $root.'/bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
$identity = portalQaAssertTarget($target);
$result = DB::transaction(function () {
DB::statement('SET TRANSACTION READ ONLY');
return [
'organization_columns' => DB::select("SELECT column_name,data_type FROM information_schema.columns WHERE table_schema='public' AND table_name='organizations' ORDER BY ordinal_position"),
'qa_memberships' => DB::table('memberships as m')->join('organizations as o', 'o.id', '=', 'm.organization_id')->whereIn('m.user_id', [18, 21, 22, 23, 24, 25, 29, 31])->whereNull('m.deleted_at')->get(['m.user_id', 'm.role', 'o.id', 'o.name', 'o.source_system', 'o.version_no']),
'categories' => DB::table('opportunities')->whereBetween('id', [30, 41])->get(['id', 'opportunity_category', 'status', 'management_version', 'workflow_context']),
'migration' => DB::table('migrations')->where('migration', 'like', '%organization%')->pluck('migration'),
];
});
file_put_contents($root.'/storage/app/private/investmoz-v2/portal-audit/next-consumers-inspection-qa.json', json_encode(['target' => $identity, 'result' => 'read_only', 'data' => $result], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
echo json_encode(['target' => $identity, 'columns' => $result['organization_columns'], 'qa_memberships' => $result['qa_memberships'], 'categories' => $result['categories']->map(fn ($r) => ['id' => $r->id, 'category' => $r->opportunity_category, 'status' => $r->status]), 'active_writes' => 0], JSON_UNESCAPED_UNICODE).PHP_EOL;