JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "GetsUserPreferredChannels-20260314162213.php"

Full Path: /home/markqprx/iniasli.pro/common-20260222054824/Notifications/GetsUserPreferredChannels-20260314162213.php
File size: 1.15 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace Common\Notifications;

use App\Models\User;
use NotificationChannels\Fcm\FcmChannel;

trait GetsUserPreferredChannels
{
    /**
     * @param  User  $notifiable
     * @return array
     */
    public function via($notifiable): array
    {
        if (!config('common.site.notif_subs_integrated')) {
            return ['database', 'mail'];
        }

        $channels = [];
        if (
            $sub = $notifiable->notificationSubscriptions
                ->where('notif_id', static::NOTIF_ID)
                ->first()
        ) {
            foreach (array_filter($sub->channels) as $channel => $isSelected) {
                if ($channel === 'browser') {
                    $channels = array_merge($channels, [
                        'database',
                        'broadcast',
                    ]);
                } elseif ($channel === 'email') {
                    $channels[] = 'mail';
                } elseif ($channel === 'mobile') {
                    $channels[] = FcmChannel::class;
                } else {
                    $channels[] = $channel;
                }
            }
        }

        return $channels;
    }
}