feat(outlet): add filter outlet by status

This commit is contained in:
Yoga Pangestu 2025-09-23 21:22:24 +07:00
parent 078b72d2ed
commit dff76ff4b1

View File

@ -2,6 +2,7 @@
namespace App\Livewire\Datatable;
use App\Enums\OutletStatus;
use App\Models\Outlet;
use App\Traits\Datatable\WithAppendColumn;
use App\Traits\Datatable\WithConfiguration;
@ -11,6 +12,7 @@
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter;
class OutletsTable extends DataTableComponent
{
@ -116,4 +118,19 @@ public function builder(): Builder
{
return Outlet::select('id', 'name', 'phone_number', 'landmark', 'address', 'opening_hours', 'facilities', 'opened_date', 'closed_date', 'status');
}
public function filters(): array
{
return [
MultiSelectFilter::make('Status')
->options(
collect(OutletStatus::cases())
->mapWithKeys(fn ($case) => [$case->value => $case->label()])
->toArray()
)
->filter(function (Builder $builder, array $values) {
$builder->whereIn('status', $values);
}),
];
}
}