<?php

namespace App\ServerProviders;

use App\Models\Server;
use App\Models\ServerProvider as Provider;
use Illuminate\Filesystem\FilesystemAdapter;
use Illuminate\Support\Facades\Storage;

abstract class AbstractProvider implements ServerProvider
{
    public function __construct(protected Provider $serverProvider, protected Server $server) {}

    public function generateKeyPair(): void
    {
        /** @var FilesystemAdapter $storageDisk */
        $storageDisk = Storage::disk(config('core.key_pairs_disk'));
        generate_key_pair($storageDisk->path((string) $this->server->id));
    }
}