<?php

namespace App\Jobs\Database;

use App\Enums\DatabaseStatus;
use App\Events\Broadcast;
use App\Jobs\Job;
use App\Models\Database;

class CreateOnServer extends Job
{
    protected Database $database;

    public function __construct(Database $database)
    {
        $this->database = $database;
    }

    public function handle(): void
    {
        $this->database->server->database()->handler()->create($this->database->name);
        $this->database->status = DatabaseStatus::READY;
        $this->database->save();
        event(new Broadcast('create-database-finished', [
            'id' => $this->database->id,
        ]));
    }

    public function failed(): void
    {
        event(new Broadcast('create-database-failed', [
            'id' => $this->database->id,
        ]));
    }
}