setPrimaryKey('id') ->setDefaultSort('created_at', 'desc') ->setTableAttributes(['class' => 'table-auto w-full']) ->setThAttributes(['class' => 'px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider']) ->setTdAttributes(['class' => 'px-4 py-2 whitespace-nowrap text-sm text-gray-900']); } public function columns(): array { return [ Column::make(__('Project Name'), 'name') ->sortable() ->searchable(), Column::make(__('Address'), 'address') ->sortable() ->searchable(), Column::make(__('Status'), 'status') ->sortable() ->filterable([ 'planning' => __('Planning'), 'in_progress' => __('In progress'), 'paused' => __('Paused'), 'completed' => __('Completed'), ]) ->label(fn ($value, $row, $column) => match ($value) { 'planning' => ''.__('Planning').'', 'in_progress' => ''.__('In progress').'', 'paused' => ''.__('Paused').'', 'completed' => ''.__('Completed').'', default => $value } ), Column::make(__('Start Date'), 'start_date') ->sortable() ->format(fn ($value, $row, $column) => $value ? $value->format('Y-m-d') : ''), Column::make(__('Estimated End Date'), 'end_date_estimated') ->sortable() ->format(fn ($value, $row, $column) => $value ? $value->format('Y-m-d') : ''), Column::make(__('Actions')) ->label(fn ($row) => '
'.__('Edit').'
'.csrf_field().'
') ->htmlAttribute(['class' => 'text-right']), ]; } }