Files
Investidor-V2/app/Jobs/CompareMneBusiness.php
T
nala 3dc7c5c649
tests / ci (push) Canceled after 0s
commit 30/9
2026-09-30 09:05:43 +02:00

34 lines
1.2 KiB
PHP

<?php
namespace App\Jobs;
use App\Services\Mne\LegacyBusinessRepository;
use App\Services\Mne\MneBusinessRepository;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
use Illuminate\Support\Facades\Log;
final class CompareMneBusiness implements ShouldQueue
{
use Queueable;
public int $tries = 1;
public function __construct(public string $businessId) {}
public function handle(LegacyBusinessRepository $legacy, MneBusinessRepository $canonical): void
{
$start = hrtime(true);
try {
$source = $legacy->find($this->businessId);
$comparison = $canonical->comparison($this->businessId);
$expected = $source->only(['code', 'modality', 'status', 'classification', 'version_no']);
$outcome = $comparison === null ? 'unmapped' : ($expected == $comparison ? 'core_match' : 'divergence');
} catch (\Throwable) {
$outcome = 'comparison_error';
}
// No payloads, query parameters, identifiers or exception messages in telemetry.
Log::info('mne.compatibility.shadow', ['outcome' => $outcome, 'latency_ms' => (hrtime(true) - $start) / 1000000]);
}
}