37 lines
1.8 KiB
PHP
37 lines
1.8 KiB
PHP
<?php
|
|
|
|
use App\Models\Opportunity;
|
|
use App\Services\OpportunityCanonicalContract;
|
|
use App\Services\OpportunityManagement;
|
|
use Illuminate\Contracts\Console\Kernel;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Validation\ValidationException;
|
|
|
|
$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);
|
|
$rows = DB::transaction(function () {
|
|
DB::statement('SET TRANSACTION READ ONLY');
|
|
$result = [];
|
|
foreach (range(31, 39) as $id) {
|
|
$o = Opportunity::findOrFail($id);
|
|
$p = app(OpportunityManagement::class)->values($o)['canonical'] ?? [];
|
|
try {
|
|
$valid = app(OpportunityCanonicalContract::class)->validateSubmission($o);
|
|
$errors = [];
|
|
} catch (ValidationException $e) {
|
|
$errors = $e->errors();
|
|
}
|
|
$result[] = ['id' => $id, 'category' => $o->opportunity_category, 'status' => $o->status, 'payload_keys' => array_keys($p), 'errors' => $errors,
|
|
'gates' => app(OpportunityCanonicalContract::class)->gates($o), 'resource_counts' => ['locations' => count($p['locations'] ?? []), 'documents' => count($p['documents'] ?? []), 'images' => count($p['images'] ?? [])]];
|
|
}
|
|
|
|
return $result;
|
|
});
|
|
file_put_contents($root.'/storage/app/private/investmoz-v2/portal-audit/next-contract-inspection-qa.json', json_encode(['target' => $identity, 'rows' => $rows, 'active_writes' => 0], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
|
|
echo json_encode(array_map(fn ($r) => ['id' => $r['id'], 'category' => $r['category'], 'errors' => $r['errors'], 'resources' => $r['resource_counts']], $rows), JSON_UNESCAPED_UNICODE).PHP_EOL;
|