<?php

declare(strict_types=1);

namespace App\Filament\Widgets\Dashboard;

use App\Models\ManagedEnvironment;
use App\Support\EnvironmentDashboard\EnvironmentDashboardSummaryBuilder;
use Filament\Facades\Filament;
use Filament\Widgets\Widget;

class EnvironmentDashboardContextChips extends Widget
{
    protected static bool $isLazy = false;

    protected int|string|array $columnSpan = 'full';

    protected string $view = 'filament.widgets.dashboard.environment-dashboard-context-chips';

    /**
     * @return array<string, mixed>
     */
    protected function getViewData(): array
    {
        $tenant = Filament::getTenant();

        if (! $tenant instanceof ManagedEnvironment) {
            return [
                'context' => [
                    'workspace' => __('localization.dashboard.overview.context_workspace'),
                    'tenant' => __('localization.dashboard.overview.context_no_environment'),
                    'provider' => null,
                    'providerKey' => null,
                    'latestActivity' => null,
                ],
                'pollingInterval' => null,
            ];
        }

        $summary = app(EnvironmentDashboardSummaryBuilder::class)->build($tenant, auth()->user());

        return [
            'context' => $summary->context,
            'pollingInterval' => $summary->pollingInterval,
        ];
    }
}
