<?php

namespace App\Livewire\ApiLogs;

use App\Models\ApiRequestLog;
use LivewireUI\Modal\ModalComponent;

class LogDetailModal extends ModalComponent
{
    public ApiRequestLog $log;

    public function mount(int $logId): void
    {
        $this->log = ApiRequestLog::with(['client', 'site', 'licenseToken'])->findOrFail($logId);
    }

    /** Anchos soportados: sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl, 6xl, 7xl */
    public static function modalMaxWidth(): string
    {
        return '5xl';
    }

    public function copyUuid(string $uuid): void
    {
        $this->dispatch('copy-to-clipboard', text: $uuid);
    }

    public function filterBySiteOrHostAndClose(?int $environmentId = null, ?string $host = null): void
    {
        $this->dispatch('api-logs-filter-by-site-or-host', environmentId: $environmentId, host: $host);
        $this->closeModal();
    }

    public function render()
    {
        return view('livewire.api-logs.log-detail-modal');
    }
}
