components([ // ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->sortable(), TextColumn::make('uid')->searchable(), TextColumn::make('user.username') ->label(__('label.user.label')) ->searchable() ->formatStateUsing(fn ($record) => new HtmlString(get_username($record->uid, false, true, true, true))) , TextColumn::make('torrent.name')->limit(40)->label(__('label.torrent.label'))->searchable(), TextColumn::make('torrent.size')->label(__('label.torrent.size'))->formatStateUsing(fn (Model $record) => mksize($record->torrent->size)), TextColumn::make('torrent.added')->label(__('label.torrent.ttl'))->formatStateUsing(fn (Model $record) => mkprettytime(abs($record->torrent->added->diffInSeconds()))), TextColumn::make('created_at')->label(__('label.created_at'))->dateTime(), TextColumn::make('last_settle_at')->label(__('label.claim.last_settle_at'))->dateTime(), TextColumn::make('seedTimeThisMonth')->label(__('label.claim.seed_time_this_month')), TextColumn::make('uploadedThisMonth')->label(__('label.claim.uploaded_this_month')), BooleanColumn::make('isReachedThisMonth')->label(__('label.claim.is_reached_this_month')), ]) ->defaultSort('id', 'desc') ->filters([ Filter::make('uid') ->schema([ TextInput::make('uid') ->label('UID') ->placeholder('UID') , ])->query(function (Builder $query, array $data) { return $query->when($data['uid'], fn (Builder $query, $uid) => $query->where("uid", $uid)); }) , Filter::make('torrent_id') ->schema([ TextInput::make('torrent_id') ->label(__('claim.fields.torrent_id')) ->placeholder(__('claim.fields.torrent_id')) , ])->query(function (Builder $query, array $data) { return $query->when($data['torrent_id'], fn (Builder $query, $value) => $query->where("torrent_id", $value)); }) , ]) ->recordActions([ // Tables\Actions\EditAction::make(), ]) ->toolbarActions([ // Tables\Actions\DeleteBulkAction::make(), ]); } public static function getEloquentQuery(): Builder { return parent::getEloquentQuery()->with(['user', 'torrent', 'snatch']); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => ListClaims::route('/'), 'create' => CreateClaim::route('/create'), 'edit' => EditClaim::route('/{record}/edit'), ]; } }