excluded_tables); } /** * Add a violation */ protected function add_violation( string $table, ?string $column, string $message, string $recommendation, string $severity = 'high' ): void { $this->violations[] = new SchemaViolation( rule_id: $this->get_id(), table: $table, column: $column, message: $message, recommendation: $recommendation, severity: $severity ); } /** * Get all violations found */ public function get_violations(): array { return $this->violations; } /** * Clear violations */ public function clear_violations(): void { $this->violations = []; } }