riskService->calculateCompanyRiskScore($companyId); // Store or update risk score $db = Database::getInstance(); $stmt = $db->prepare("SELECT id FROM risk_scores WHERE company_id = ? LIMIT 1"); $stmt->execute([$companyId]); $existing = $stmt->fetch(); if ($existing) { $stmt = $db->prepare("UPDATE risk_scores SET risk_level = ?, score = ?, factors = ?, calculated_at = NOW() WHERE company_id = ?"); $stmt->execute([ $analysis['level'], $analysis['score'], json_encode($analysis['factors'], JSON_UNESCAPED_UNICODE), $companyId ]); } else { $stmt = $db->prepare("INSERT INTO risk_scores (id, tenant_id, company_id, risk_type, risk_level, score, factors, calculated_at) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())"); $stmt->execute([ \Ramsey\Uuid\Uuid::uuid4()->toString(), $tenantId, $companyId, 'overall_company_risk', // risk_type is required $analysis['level'], $analysis['score'], json_encode($analysis['factors'], JSON_UNESCAPED_UNICODE) ]); } } catch (Throwable $e) { echo "[!] Risk Analysis failed for company {$companyId}: " . $e->getMessage() . "\n"; throw $e; } } }