<?php

use Illuminate\Support\Facades\Broadcast;

Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

// 聊天室房间 Presence Channel 鉴权与成员信息抓取
Broadcast::channel('room.{roomId}', function ($user, $roomId) {
    // 这里未来可以增加判断：比如该房间是否被锁定，或者该用户是否在此房间的黑名单中
    // 凡是通过了这个判断的人（返回一个数组），他就会成功建立 WebSocket，
    // 且他的这个数组信息会被 Reverb 推送给这个房间内的所有其他人 (joining / here 事件)。

    $superLevel = (int) \App\Models\Sysparam::getValue('superlevel', '100');

    return [
        'id' => $user->id,
        'username' => $user->username,
        'user_level' => $user->user_level,
        'sex' => $user->sex,
        'headface' => $user->headface, // 通过 accessor 读取 usersf，默认 1.gif
        'vip_icon' => $user->vipIcon(),
        'vip_name' => $user->vipName(),
        'vip_color' => $user->isVip() ? ($user->vipLevel?->color ?? '') : '',
        'is_admin' => $user->user_level >= $superLevel,
    ];
});
