<?php

// app/Http/Livewire/OnlineUsersList.php
namespace App\Http\Livewire;

use App\Services\PresenceService;
use Livewire\Attributes\On;
use Livewire\Component;

class OnlineUsersList extends Component
{
    public $onlineUsers = [];
    public $guard = 'web';
    public $showCount = true;
    public $showAvatars = true;
    public $maxDisplay = 10;
    public $refreshInterval = 10;

    public function mount($guard = 'web', $showCount = true, $showAvatars = true, $maxDisplay = 10)
    {
        $this->guard = $guard;
        $this->showCount = $showCount;
        $this->showAvatars = $showAvatars;
        $this->maxDisplay = $maxDisplay;
        $this->loadOnlineUsers();
    }

    public function loadOnlineUsers()
    {
        try {
            $presenceService = app(PresenceService::class);
            $users = $presenceService->getOnlineUsers($this->guard);

            // Limit the display count
            $this->onlineUsers = $users->take($this->maxDisplay)->toArray();
        } catch (\Exception $e) {
            $this->onlineUsers = [];
        }
    }

    public function render()
    {
        return view('livewire.online-users-list');
    }
}
