OwlCyberSecurity - MANAGER
Edit File: ProductOfferBrandResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\ProductOfferBrandResource\Pages; use App\Filament\Resources\ProductOfferBrandResource\RelationManagers; use App\Models\ProductOfferBrand; use Filament\Forms; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class ProductOfferBrandResource extends Resource { protected static ?string $model = ProductOfferBrand::class; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $slug = 'product-offer-brands'; protected static ?string $modelLabel = 'برند'; protected static ?string $pluralModelLabel = 'برند ها'; protected static ?int $navigationSort = 5; protected static ?string $navigationGroup = 'پیشنهاد ها'; public static function form(Form $form): Form { return $form ->schema([ Grid::make(3)->schema([ Grid::make(1)->schema([ Grid::make(1)->schema([ TextInput::make('title')->label('عنوان')->columnSpan(2)->required(), ]), Grid::make(1)->schema([ TextInput::make('link')->label('لینک')->columnSpan(2)->required(), ]), ])->columnSpan(2), Section::make()->schema([ FileUpload::make('image_name')->image()->label('تصویر سایز مناسب : 100*100')->imageEditor()->required(), Toggle::make('is_show')->label('وضعیت نمایش')->required(), Toggle::make('target')->label('لینک خارج از سایت')->required(), Select::make('type')->label('نوع')->required()->options([ 'industrial' => 'صنعتی', 'car' => 'خودرو', ]), ])->columnSpan(1), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('title')->label('عنوان')->searchable(), TextColumn::make('link')->label('لینک'), TextColumn::make('type')->label('نوع')->badge() ->getStateUsing(function (ProductOfferBrand $record): string { switch ($record->type) { case 'car': $result = 'خودرو'; break; case 'industrial': default: $result = 'صنعتی'; break; } return $result; }), IconColumn::make('is_show')->label('وضعیت نمایش')->boolean(), TextColumn::make('created_at')->label('ایجاد در')->dateTime(), ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ])->defaultSort('updated_at', 'desc'); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListProductOfferBrands::route('/'), 'create' => Pages\CreateProductOfferBrand::route('/create'), 'edit' => Pages\EditProductOfferBrand::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('product-offer-brands::view'); } }