<?php

namespace App\Services\Nodes;

use Ramsey\Uuid\Uuid;
use Illuminate\Support\Str;
use App\Models\Node;

class NodeCreationService
{
    /**
     * Create a new node on the panel.
     *
     * @throws \App\Exceptions\Model\DataValidationException
     */
    public function handle(array $data): Node
    {
        $data['uuid'] = Uuid::uuid4()->toString();
        $data['daemon_token'] = encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH));
        $data['daemon_token_id'] = Str::random(Node::DAEMON_TOKEN_ID_LENGTH);

        return Node::query()->create($data);
    }
}