stats overview

This commit is contained in:
Gitea
2025-05-08 09:56:13 +05:30
parent d8b85f2493
commit cf010f018b
4 changed files with 49 additions and 9 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Filament\Widgets;
use App\Models\Log;
use App\Models\Meta;
use App\Models\User;
use DB;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
class StatsOverview extends BaseWidget
{
protected function getStats(): array
{
return [
Stat::make('Total Users', $this->getUser()),
Stat::make('Paid Users', $this->getUserPaid()),
Stat::make('Logs Count', $this->getLogsCount()),
Stat::make('Total Mailbox', $this->getTotalMailbox()),
Stat::make('Emails Received', $this->getTotalEmailsReceived()),
];
}
private function getUser(): int
{
return User::all()->count();
}
private function getUserPaid(): int
{
return DB::table('subscriptions')
->where(['stripe_status' => 'active'])
->distinct('user_id')
->count('user_id');
}
private function getLogsCount(): int
{
return Log::all()->count();
}
private function getTotalMailbox(): int
{
return Meta::select('value')->where(['key' => 'email_ids_created'])->first()->value;
}
private function getTotalEmailsReceived(): int
{
return Meta::select('value')->where(['key' => 'messages_received'])->first()->value;
}
}

View File

@@ -38,8 +38,8 @@ class DashPanelProvider extends PanelProvider
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
->widgets([
Widgets\AccountWidget::class,
Widgets\FilamentInfoWidget::class,
//Widgets\AccountWidget::class,
//Widgets\FilamentInfoWidget::class,
])
->middleware([
EncryptCookies::class,