OwlCyberSecurity - MANAGER
Edit File: SinglePaymentResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\SinglePaymentResource\Pages; use App\Filament\Resources\SinglePaymentResource\RelationManagers; use App\Models\SinglePayment; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Filament\Tables\Columns\TextColumn; class SinglePaymentResource extends Resource { protected static ?string $model = SinglePayment::class; protected static ?string $navigationIcon = 'heroicon-o-shopping-bag'; protected static ?string $slug = 'single-payment'; protected static ?string $modelLabel = 'پرداخت های بیرونی'; protected static ?string $pluralModelLabel = 'پرداخت های بیرونی'; protected static ?int $navigationSort = 20; protected static ?string $navigationGroup = 'مالی'; // public static function form(Form $form): Form // { // return $form // ->schema([ // // // ]); // } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('created_at')->label('تاریخ تراکنش')->sortable()->jalaliDateTime(), TextColumn::make('status')->label('نوع تراکنش')->badge() ->getStateUsing(function (SinglePayment $record): string { switch ($record->status) { case 'charge': $result = 'شارژ توسط کاربر'; break; case 'discharge': $result = 'کسر شارژ توسط کاربر'; break; case 'admin-charge': $result = 'شارژ توسط ادمین'; break; case 'admin-discharge': default: $result = 'کسر شارژ توسط ادمین'; break; } return $result; })->color(fn(string $state): string => match ($state) { 'کسر شارژ توسط کاربر' => 'danger', 'شارژ توسط کاربر' => 'success', 'کسر شارژ توسط ادمین' => 'danger', 'شارژ توسط ادمین' => 'success', }), TextColumn::make('payment_status')->label('وضعیت پرداخت')->badge() ->getStateUsing(function (SinglePayment $record): string { switch ($record->payment_status) { case 'Succeeded': $result = 'موفق'; break; case 'Preinitiated': $result = 'در حال انجام'; break; case 'Failed': default: $result = 'ناموفق'; break; } return $result; })->color(fn(string $state): string => match ($state) { 'ناموفق' => 'danger', 'موفق' => 'success', 'در حال انجام' => 'warning', })->sortable(), TextColumn::make('amount')->label('مبلغ')->money('irr')->sortable(), ])->defaultSort('id','desc') ->filters([ // ]) ->actions([ // Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListSinglePayments::route('/'), // 'create' => Pages\CreateSinglePayment::route('/create'), // 'edit' => Pages\EditSinglePayment::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('single-payment::view'); } }