<?php

namespace App\Livewire\Admin;

use LivewireUI\Modal\ModalComponent;

/**
 * Rückfrage, bevor eine NEUE Serverkennung die bestehende ersetzt (R23).
 *
 * Keine Formsache. Die öffentliche Hälfte der bisherigen Kennung steht auf dem
 * Wirt in `/root/.ssh/authorized_keys`, und von hier aus wird sie nicht
 * angefasst — das tut allein `install-server-terminal`, die root-eigene Hälfte
 * auf der Maschine. Zwischen dem Erzeugen und dem nächsten
 * `sudo bash deploy/install-agent.sh` geht das Server-Terminal nicht auf.
 *
 * Mutiert nichts selbst: bestätigen schickt ein Ereignis zurück an
 * Admin\Settings, dessen `generateServerKey()` seine eigene Prüfung behält.
 */
class ConfirmGenerateServerKey extends ModalComponent
{
    public function mount(): void
    {
        $this->authorize('server.terminal');
    }

    public function confirm(): void
    {
        $this->authorize('server.terminal');
        $this->dispatch('server-key-generate-confirmed');
        $this->closeModal();
    }

    public function render()
    {
        return view('livewire.admin.confirm-generate-server-key');
    }
}
