<?php

use App\Models\User;
use Illuminate\Support\Facades\Broadcast;

Broadcast::routes(['middleware' => 'auth:api', 'prefix' => 'api']);

// Weathermap stuff
Broadcast::channel('weathermap', function ($user) {
    if(isset($user) && $user !== null) {
        return true;
    }
});

// RIB stuff
Broadcast::channel('admin-inline-rib', function ($user) {
    if($user->organisation_id == 1 && User::find($user->id)->canDo('goliath.l1.manage')) {
        return true;
    }

    return false;
});

// Channel for dropped traffic
Broadcast::channel('goliathTraffic.{organisation_id}', function ($user, $organisation_id) {
    return ($user->organisation_id == $organisation_id) && User::find($user->id)->canDo("goliath.l1.chart");
});

Broadcast::channel('goliathAdminTraffic', function ($user) {
    return User::find($user->id)->canDo(['goliath.l1.manage', 'goliath.l1.chart']);
});

// Mercury stuff
Broadcast::channel('mercury.{organisation_id}', function ($user, $organisation_id) {
    return ($user->organisation_id == $organisation_id) && User::find($user->id)->canDo("mercury.v2.view");
});