<?php

namespace App\Services;

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;

/**
 * Service class serves integration dashboard for order related logic
 */
class DashboardService
{
    public function getWorkerStatus()
    {
        $lastQueueActivity = Cache::get('queue_heartbeat');
        //exec("ps aux | grep 'artisan queue' | grep -v grep | awk '{print $2, $9, $10}'", $psout, $resultCode);

        $workerStatus = [];
        if ($lastQueueActivity) {
            $workerStatus[] = [
                'process' => 'N/A',
                'since' => $lastQueueActivity ? date('Y-m-d H:i:s', $lastQueueActivity) : 'N/A',
                'processTime' => 'N/A',
            ];
        }

        return $workerStatus;
    }

    public function getCatalogIntegrationStatus()
    {
        $status = [
            'controlProductsIntegration' => Cache::has('control_products_integration'),
            'controlPricesIntegration' => Cache::has('control_prices_integration'),
        ];

        return $status;
    }

    public function getQueueStatus()
    {
        $pendingJobs = DB::table('jobs')->count();
        $failedJobs = DB::table('failed_jobs')->count();

        return [
            'pendingJobs' => $pendingJobs,
            'failedJobs' => $failedJobs
        ];
    }
}
