severity === ModerationSeverity::Low && $this->score === 0; } public function isSuspicious(): bool { return $this->score >= app('config')->get('content_moderation.severity_thresholds.medium', 30); } public function toArray(): array { return [ 'score' => $this->score, 'severity' => $this->severity->value, 'status' => $this->status->value, 'reasons' => $this->reasons, 'matched_links' => $this->matchedLinks, 'matched_domains' => $this->matchedDomains, 'matched_keywords' => $this->matchedKeywords, 'content_hash' => $this->contentHash, 'scanner_version' => $this->scannerVersion, 'rule_hits' => $this->ruleHits, 'content_hash_normalized' => $this->contentHashNormalized, 'group_key' => $this->groupKey, 'user_risk_score' => $this->userRiskScore, 'auto_hide_recommended' => $this->autoHideRecommended, 'content_target_type' => $this->contentTargetType, 'content_target_id' => $this->contentTargetId, 'campaign_key' => $this->campaignKey, 'cluster_score' => $this->clusterScore, 'cluster_reason' => $this->clusterReason, 'policy_name' => $this->policyName, 'priority_score' => $this->priorityScore, 'review_bucket' => $this->reviewBucket, 'escalation_status' => $this->escalationStatus, 'ai_provider' => $this->aiProvider, 'ai_label' => $this->aiLabel, 'ai_suggested_action' => $this->aiSuggestedAction, 'ai_confidence' => $this->aiConfidence, 'ai_explanation' => $this->aiExplanation, 'ai_raw_response' => $this->aiRawResponse, 'score_breakdown' => $this->scoreBreakdown, ]; } }