<?php

namespace OtomaticAi\Jobs;

use Exception;
use OtomaticAi\Api\OtomaticAi\Client;
use OtomaticAi\Services\ProjectsMetricsAggregator;
use OtomaticAi\Utils\Auth;

class PushProjectsMetricsJob extends Job
{
    const HOOK = "otomatic_ai_push_projects_metrics";

    public function __construct($attrs = [])
    {
    }

    public function handle()
    {
        if (!Auth::check()) {
            return;
        }

        try {
            $payload = (new ProjectsMetricsAggregator)->build();
            (new Client)->pushProjectsMetrics($payload);
        } catch (Exception $e) {
        }
    }

    /**
     * Execute the push synchronously.
     */
    public static function pushNow(): void
    {
        (new static)->handle();
    }
}
