<?php

declare(strict_types=1);

namespace App\Filament\Concerns;

use Filament\Facades\Filament;
use Illuminate\Database\Eloquent\Model;

trait CleansAdminTenantQueryParameter
{
    /**
     * @param  array<string, mixed>  $parameters
     */
    public static function getUrl(array $parameters = [], bool $isAbsolute = true, ?string $panel = null, ?Model $tenant = null): string
    {
        $panelId = $panel ?? Filament::getCurrentOrDefaultPanel()?->getId() ?? 'admin';

        if ($panelId === 'admin') {
            unset($parameters['tenant']);

            return parent::getUrl($parameters, $isAbsolute, $panelId, null);
        }

        return parent::getUrl($parameters, $isAbsolute, $panelId, $tenant);
    }
}
