id()). * Kanban-style grouped by status. */ class MechanicBoard extends Page { protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-wrench'; protected static ?string $navigationLabel = 'Atelierul meu'; protected static string|\UnitEnum|null $navigationGroup = 'Service'; protected static ?int $navigationSort = 25; protected static ?string $title = 'Atelierul meu'; protected string $view = 'filament.tenant.pages.mechanic-board'; public function getColumns(): array { $userId = auth()->id(); if (! $userId) return []; $all = WorkOrder::with(['client', 'vehicle']) ->where('master_id', $userId) ->whereIn('status', ['in_work', 'awaiting_parts', 'ready', 'done', 'approved', 'diagnosis']) ->orderBy('opened_at', 'desc') ->get(); return [ [ 'key' => 'in_work', 'label' => 'În lucru', 'color' => '#f59e0b', 'items' => $all->where('status', 'in_work')->values(), ], [ 'key' => 'awaiting_parts', 'label' => 'Așteaptă piese', 'color' => '#8b5cf6', 'items' => $all->whereIn('status', ['awaiting_parts'])->values(), ], [ 'key' => 'ready', 'label' => 'Gata', 'color' => '#10b981', 'items' => $all->where('status', 'ready')->values(), ], [ 'key' => 'recent', 'label' => 'Recente / restul', 'color' => '#64748b', 'items' => $all->whereIn('status', ['done', 'approved', 'diagnosis']) ->take(20) ->values(), ], ]; } public function getCounts(): array { $userId = auth()->id(); return [ 'active' => $userId ? WorkOrder::where('master_id', $userId) ->whereIn('status', ['in_work', 'awaiting_parts', 'ready']) ->count() : 0, 'closed_today' => $userId ? WorkOrder::where('master_id', $userId) ->where('status', 'done') ->whereDate('closed_at', today()) ->count() : 0, ]; } }