schema([ Section::make('Taxi Form') ->schema([ TextInput::make('name')->placeholder('Enter Taxi Name')->live() ->afterStateUpdated(fn (Set $set, ?string $state) => $set('url', Str::slug($state))), TextInput::make('url')->placeholder('URL of Taxi Page'), FileUpload::make('image')->image() ->imageCropAspectRatio('16:9')->columnSpanFull() ->downloadable()->directory('destination') ->getUploadedFileNameForStorageUsing(function (TemporaryUploadedFile $file): string { return (string) str($file->getClientOriginalName())->prepend(now()->timestamp); }), RichEditor::make('description')->columnSpanFull(), Select::make('type') ->options([ 'Hachback' => 'Hachback', 'Sedan' => 'Sedan', 'MUV' => 'MUV', 'SUV' => 'SUV', 'Traveller' => 'Traveller', 'Bus' => 'Bus', ])->searchable(), Select::make('bags') ->options([ '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10 or More Than', ])->searchable(), TextInput::make('price')->numeric()->placeholder('Enter Price per KM')->prefix('₹'), TextInput::make('seat')->numeric()->placeholder('Enter Total Seats'), Grid::make(3) ->schema([ Select::make('rating') ->options([ 1 => 1, 2 => 2, 3 =>3, 4 => 4, 5 => 5, ])->searchable(), Toggle::make('ac'), Toggle::make('gps'), ]), Textarea::make('meta')->columnSpanFull(), KeyValue::make('faqs')->columnSpanFull() ->keyLabel('Question')->valueLabel('Answer') ->keyPlaceholder('Enter Question')->valuePlaceholder('Enter Answer'), ])->columns(2) ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('name')->searchable(), ImageColumn::make('image'), TextColumn::make('type')->searchable(), TextColumn::make('price')->money('Rs.')->sortable(), TextColumn::make('seat'), TextColumn::make('bags'), IconColumn::make('ac')->boolean(), IconColumn::make('gps')->boolean(), TextColumn::make('rating')->numeric()->sortable(), TextColumn::make('created_at')->dateTime()->sortable() ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('updated_at')->dateTime()->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ // Tables\Filters\TrashedFilter::make(), ]) ->actions([ Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make() ->after(function (Taxi $record) { // delete single if ($record->image) { Storage::disk('public')->delete($record->image); } // delete multiple /*if ($record->galery) { foreach ($record->galery as $ph) Storage::disk('public/storage')->delete($ph); }*/ }), ]) ->emptyStateActions([ Tables\Actions\CreateAction::make(), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListTaxis::route('/'), 'create' => Pages\CreateTaxi::route('/create'), 'edit' => Pages\EditTaxi::route('/{record}/edit'), ]; } public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]); } }