<?php

namespace App\Filament\Widgets;

use App\Models\Inspecteur;
use App\Models\Region;
use App\Models\Etablissement;
use App\Models\Professeur;
use App\Models\Rapport;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
use Illuminate\Support\Facades\Cache;

class AnalyticsKPIs extends StatsOverviewWidget
{
    protected function getStats(): array
    {
        return Cache::remember('analytics_kpis', 3600, function () {
            return [
                Stat::make('Inspecteurs', Inspecteur::count())
                    ->description('Total des inspecteurs')
                    ->descriptionIcon('heroicon-o-academic-cap')
                    ->color('primary'),
                Stat::make('Wilayas', Region::count())
                    ->description('Wilayas couvertes')
                    ->descriptionIcon('heroicon-o-map')
                    ->color('success'),
                Stat::make('Établissements', Etablissement::count())
                    ->description('Total des établissements')
                    ->descriptionIcon('heroicon-o-building-office-2')
                    ->color('warning'),
                Stat::make('Professeurs', Professeur::count())
                    ->description('Total des professeurs')
                    ->descriptionIcon('heroicon-o-clipboard-document-list')
                    ->color('info'),
                Stat::make('Rapports', Rapport::count())
                    ->description('Total des rapports')
                    ->descriptionIcon('heroicon-o-document-text')
                    ->color('danger'),
            ];
        });
    }
}
