Files
Atomcms-edit/app/Filament/Widgets/TopDashboardOverview.php
T
2026-05-09 17:32:17 +02:00

56 lines
2.3 KiB
PHP
Executable File

<?php
namespace App\Filament\Widgets;
use App\Models\ItemDefinition;
use App\Models\Miscellaneous\CameraWeb;
use App\Models\Room;
use App\Models\User;
use App\Models\WebsiteBadge;
use Filament\Support\Enums\IconPosition;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
use Illuminate\Support\Number;
class TopDashboardOverview extends BaseWidget
{
#[\Override]
protected static ?int $sort = 1;
#[\Override]
protected function getStats(): array
{
return [
Stat::make(__('filament::resources.stats.users_count.title'), Number::format(User::query()->count(), 0))
->description(__('filament::resources.stats.users_count.description'))
->chart([20, 20])
->descriptionIcon('heroicon-m-user-group', IconPosition::Before)
->color('success'),
Stat::make(__('filament::resources.stats.furniture_count.title'), Number::format(ItemDefinition::query()->count(), 0))
->description(__('filament::resources.stats.furniture_count.description'))
->descriptionIcon('heroicon-m-cube', IconPosition::Before)
->chart([20, 20])
->color('success'),
Stat::make(__('filament::resources.stats.rooms_count.title'), Number::format(Room::query()->count(), 0))
->description(__('filament::resources.stats.rooms_count.description'))
->descriptionIcon('heroicon-m-building-storefront', IconPosition::Before)
->chart([20, 20])
->color('success'),
Stat::make(__('filament::resources.stats.photos_count.title'), Number::format(CameraWeb::query()->count(), 0))
->description(__('filament::resources.stats.photos_count.description'))
->descriptionIcon('heroicon-m-camera', IconPosition::Before)
->chart([20, 20])
->color('success'),
Stat::make(__('filament::resources.stats.badge_count.title'), Number::format(WebsiteBadge::query()->count(), 0))
->description(__('filament::resources.stats.badge_count.description'))
->descriptionIcon('heroicon-m-gif', IconPosition::Before)
->chart([20, 20])
->color('success'),
];
}
}