12345] * ); */ public static function sendSystemMessage(int $userId, string $content, string $systemType = 'general', array $metadata = []) { $service = new MessagingService(); return $service->sendSystemMessage($userId, $content, $systemType, $metadata); } /** * Send a system message to multiple users * * @param array $userIds Array of user IDs * @param string $content Message content * @param string $systemType Type of system message * @param array $metadata Additional metadata * @return array Array of created messages * * @example * MessagingHelper::sendSystemMessageToUsers( * userIds: [1, 2, 3], * content: 'System maintenance scheduled for tomorrow', * systemType: 'system_announcement' * ); */ public static function sendSystemMessageToUsers(array $userIds, string $content, string $systemType = 'general', array $metadata = []) { $service = new MessagingService(); return $service->sendSystemMessageToUsers($userIds, $content, $systemType, $metadata); } /** * Send a direct message from one user to another * * @param int $senderId Sender user ID * @param int $recipientId Recipient user ID * @param string $content Message content * @param array $metadata Additional metadata * @return \Paymenter\Extensions\Others\SocialBase\Models\Message */ public static function sendDirectMessage(int $senderId, int $recipientId, string $content, array $metadata = []) { $service = new MessagingService(); return $service->sendDirectMessage($senderId, $recipientId, $content, $metadata); } /** * Get unread message count for a user * * @param int $userId * @return int */ public static function getUnreadCount(int $userId): int { $service = new MessagingService(); return $service->getUnreadCount($userId); } /** * Report a message * * @param int $messageId Message ID to report * @param int $reportedBy User ID reporting the message * @param string $reason Reason for report (spam, harassment, inappropriate, etc.) * @param string|null $description Optional detailed description * @return \Paymenter\Extensions\Others\SocialBase\Models\MessageReport * * @example * MessagingHelper::reportMessage( * messageId: 123, * reportedBy: 1, * reason: 'spam', * description: 'This message contains spam content' * ); */ public static function reportMessage(int $messageId, int $reportedBy, string $reason, ?string $description = null) { $service = new MessagingService(); return $service->reportMessage($messageId, $reportedBy, $reason, $description); } /** * Check if messaging system is available * * @return bool */ public static function isAvailable(): bool { try { return class_exists('\Paymenter\Extensions\Others\SocialBase\Services\MessagingService') && \Illuminate\Support\Facades\Schema::hasTable('ext_social_messages'); } catch (\Exception $e) { return false; } } }