schema([ TextInput::make('title') ->required() ->maxLength(255), TextInput::make('location') ->required() ->maxLength(255), Textarea::make('title_description') ->label('Description (show on modal)') ->required() ->maxLength(65535) ->columnSpan('full'), TextInput::make('salary_per_month') ->required() ->numeric() ->label('Salary per month') ->maxLength(255), Forms\Components\Select::make('salary_currency') ->options(getCurrencies()) ->required() ->label('Salary currency') ->searchable() ->default('USD'), Repeater::make('bullets') ->schema([ TextInput::make('bullet') ->required() ->maxLength(255), ]) ->minItems(1) ->defaultItems(1) ->columnSpan('full'), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('title') ->searchable(), Tables\Columns\TextColumn::make('title_description') ->searchable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('salary_per_month') ->searchable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('salary_currency') ->searchable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('location') ->searchable(), Tables\Columns\TextColumn::make('salary') ->searchable(), Tables\Columns\TextColumn::make('created_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('updated_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ RelationManagers\ApplicationsRelationManager::class, ]; } public static function getPages(): array { return [ 'index' => Pages\ListInternships::route('/'), 'create' => Pages\CreateInternship::route('/create'), 'edit' => Pages\EditInternship::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->role === UserRole::ADMIN || auth()->user()->role === UserRole::MANAGER; } }