<?php

declare(strict_types=1);

namespace App\Filament\Widgets\ManagedEnvironment;

use App\Filament\Resources\FindingResource;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;

class FindingStatsOverview extends BaseWidget
{
    protected static bool $isLazy = false;

    protected ?string $pollingInterval = null;

    /**
     * @return array<int, Stat>
     */
    protected function getStats(): array
    {
        $counts = FindingResource::findingStatsForCurrentTenant();

        return [
            Stat::make('Open', $counts['open'])
                ->icon('heroicon-o-exclamation-triangle')
                ->color($counts['open'] > 0 ? 'warning' : 'success'),
            Stat::make('Overdue', $counts['overdue'])
                ->icon('heroicon-o-clock')
                ->color($counts['overdue'] > 0 ? 'danger' : 'gray'),
            Stat::make('High severity', $counts['high_severity'])
                ->icon('heroicon-o-fire')
                ->color($counts['high_severity'] > 0 ? 'danger' : 'gray'),
            Stat::make('Risk accepted', $counts['risk_accepted'])
                ->icon('heroicon-o-shield-check')
                ->color('gray'),
        ];
    }
}
