columns([ TextColumn::make('id') ->label(__('sync_log.fields.id')) ->sortable(), TextColumn::make('datetime') ->label(__('sync_log.fields.datetime')) ->sortable() ->formatStateUsing(function ($state) { if (! $state) { return '-'; } try { $date = \Carbon\Carbon::parse($state); return Jalalian::fromCarbon($date)->format('Y/m/d - H:i'); } catch (\Exception $e) { return $state; } }), TextColumn::make('ip') ->label(__('sync_log.fields.ip')) ->searchable(), TextColumn::make('user') ->label(__('sync_log.fields.user')) ->searchable(), TextColumn::make('table_name') ->label(__('sync_log.fields.table_name')) ->searchable(), TextColumn::make('action') ->label(__('sync_log.fields.action')) ->badge() ->searchable() ->color(fn (string $state): string => match ($state) { 'created' => 'success', 'updated' => 'warning', 'deleted' => 'danger', 'synced' => 'gray', default => 'primary', }), TextColumn::make('record_id') ->label(__('sync_log.fields.record_id')), ]) ->defaultSort('id', 'desc'); } public static function getPages(): array { return [ 'index' => Pages\ListOsurgAudits::route('/'), ]; } }