notify(new ModelCreatedNotification($model, str($request->getRequestUri()) ->after('/nova-api/') ->before('?') ->toString())); } public static function relatableMeetups(NovaRequest $request, $query, Field $field) { if ($field instanceof BelongsTo) { $query->whereIn('meetups.id', $request->user() ->meetups() ->pluck('id') ->toArray()); } return $query; } public function subtitle() { return __('Created by: :name', ['name' => $this->createdBy->name]); } /** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ ID::make() ->sortable(), DateTime::make(__('Start'), 'start') ->step(CarbonInterval::minutes(15)) ->displayUsing(fn ($value) => $value->asDateTime()), Text::make(__('Location'), 'location'), Markdown::make(__('Description'), 'description') ->rules('required', 'string') ->hideFromIndex(), Text::make('Link') ->hideFromIndex() ->rules('nullable', 'string') ->nullable() ->help(__('For example, a link to a location on Google Maps or a link to a website. (not your Telegram group link)')), BelongsTo::make('Meetup') ->searchable() ->withSubtitles(), BelongsTo::make(__('Created By'), 'createdBy', User::class) ->canSee(function ($request) { return $request->user() ->hasRole('super-admin'); }) ->searchable() ->withSubtitles(), ]; } /** * Get the cards available for the request. * * @param \Illuminate\Http\Request $request * @return array */ public function cards(Request $request) { return []; } /** * Get the filters available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function filters(Request $request) { return []; } /** * Get the lenses available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function lenses(Request $request) { return []; } /** * Get the actions available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function actions(Request $request) { return []; } }