diff --git a/app/Filament/Widgets/OverviewStats.php b/app/Filament/Widgets/OverviewStats.php index d12f36e..c83d515 100644 --- a/app/Filament/Widgets/OverviewStats.php +++ b/app/Filament/Widgets/OverviewStats.php @@ -27,57 +27,59 @@ protected function getStats(): array $startDate = $this->filters['startDate'] ?? null; $endDate = $this->filters['endDate'] ?? null; - $totalJournalists = Journalist::when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + $totalJournalists = Journalist::when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count(); - $totalMedia = PartnerMedia::when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + $totalMedia = PartnerMedia::when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count(); $average = $totalMedia > 0 ? round($totalJournalists / $totalMedia, 1) : 0; return [ - Stat::make('Total Perusahaan', Company::when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + Stat::make('Total Perusahaan', Company::when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count()) ->description('Perusahaan terdaftar') ->descriptionIcon(Heroicon::BuildingOffice2) ->color('primary'), - Stat::make('Media Terverifikasi', PartnerMedia::approved() - ->when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + Stat::make('Media Terverifikasi', PartnerMedia::whereHas('company.verificationRequest', function ($q) { + $q->approved(); + }) + ->when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count()) ->description('Media aktif') ->descriptionIcon(Heroicon::CheckBadge) ->color('success'), - Stat::make('Total Jurnalis', Journalist::when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + Stat::make('Total Jurnalis', Journalist::when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count()) ->description('Jurnalis terdaftar') ->descriptionIcon(Heroicon::Identification) ->color('info'), Stat::make('Antrean Verifikasi', VerificationRequest::pending() - ->when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + ->when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count()) ->description('Butuh tindakan') ->descriptionIcon(Heroicon::PencilSquare) ->color('warning'), Stat::make('Antrean Perubahan', DataChangeRequest::pending() - ->when($startDate, fn ($q) => $q->whereDate('created_at', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('created_at', '<=', $endDate)) + ->when($startDate, fn($q) => $q->whereDate('created_at', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('created_at', '<=', $endDate)) ->count()) ->description('Perubahan data') ->descriptionIcon(Heroicon::DocumentText) ->color('warning'), - Stat::make('Total Pengunjung', Visitor::when($startDate, fn ($q) => $q->whereDate('date', '>=', $startDate)) - ->when($endDate, fn ($q) => $q->whereDate('date', '<=', $endDate)) + Stat::make('Total Pengunjung', Visitor::when($startDate, fn($q) => $q->whereDate('date', '>=', $startDate)) + ->when($endDate, fn($q) => $q->whereDate('date', '<=', $endDate)) ->count()) ->description('Total traffic') ->descriptionIcon(Heroicon::ChartBar)