<?php

namespace App\Http\Livewire\Project\Service;

use App\Actions\Service\StartService;
use App\Actions\Service\StopService;
use App\Jobs\ContainerStatusJob;
use App\Models\Service;
use Livewire\Component;

class Navbar extends Component
{
    public Service $service;
    public array $parameters;
    public array $query;
    protected $listeners = ['serviceStatusUpdated'];

    public function render()
    {
        return view('livewire.project.service.navbar');
    }
    public function serviceStatusUpdated()
    {
        $this->check_status();
    }
    public function check_status()
    {
        dispatch_sync(new ContainerStatusJob($this->service->server));
        $this->service->refresh();
    }
    public function deploy()
    {
        $this->service->parse();
        $activity = StartService::run($this->service);
        $this->emit('newMonitorActivity', $activity->id);
    }
    public function stop()
    {
        StopService::run($this->service);
        $this->service->refresh();
        $this->emit('success', 'Service stopped successfully.');
    }
}