<?php

namespace App\Filament\Pages;

use App\Filament\Widgets\OperationsStatsWidget;
use App\Filament\Widgets\ContractsStatsWidget;
use App\Filament\Widgets\FinancialStatsWidget;
use App\Filament\Widgets\SparePartsStatsWidget;
use App\Filament\Widgets\WorkOrdersChartWidget;
use App\Filament\Widgets\MachinesStatusChartWidget;
use App\Filament\Widgets\ExtractsPaymentsChartWidget;
use Filament\Pages\Dashboard as BaseDashboard;
use BezhanSalleh\FilamentShield\Traits\HasPageShield;

class Dashboard extends BaseDashboard
{
    use HasPageShield;
    
    public function getTitle(): string
    {
        return __('filament/admin/dashboard.title');
    }

    protected function getHeaderWidgets(): array
    {
        return [
            OperationsStatsWidget::class,
            ContractsStatsWidget::class,
            FinancialStatsWidget::class,
            SparePartsStatsWidget::class,
        ];
    }

    protected function getFooterWidgets(): array
    {
        return [
            WorkOrdersChartWidget::class,
            MachinesStatusChartWidget::class,
            ExtractsPaymentsChartWidget::class,
        ];
    }

    public function getFooterWidgetsColumns(): array | int
    {
        return 2;
    }

    public static function getNavigationLabel(): string
    {
        return __('filament/admin/dashboard.title');
    }
}
