country = request()->route('country', config('app.domain_country')); } public function addMeetup() { if ($this->selectedMeetupId) { $user = auth()->user(); // Prüfen ob bereits zugeordnet if (!$user->meetups()->where('meetup_id', $this->selectedMeetupId)->exists()) { $user->meetups()->attach($this->selectedMeetupId); } $this->selectedMeetupId = null; } } public function removeMeetup($meetupId) { auth()->user()->meetups()->detach($meetupId); Flux::modals()->close(); $this->reset('selectedMeetupId'); } public function with(): array { $user = auth()->user(); // Meine Meetups $myMeetups = $user ->meetups() ->with(['city.country']) ->get(); // Alle verfügbaren Meetups (außer die bereits zugeordneten) $availableMeetups = Meetup::with(['city.country']) ->whereNotIn('id', $myMeetups->pluck('id')) ->orderBy('name') ->get(); // Meine nächsten Meetup Termine $myUpcomingEvents = MeetupEvent::whereHas('meetup', function ($query) use ($user) { $query->whereHas('users', function ($q) use ($user) { $q->where('users.id', $user->id); }); }) ->where('start', '>=', now()) ->with(['meetup.city.country']) ->orderBy('start') ->limit(5) ->get(); return [ 'myMeetups' => $myMeetups, 'availableMeetups' => $availableMeetups, 'myUpcomingEvents' => $myUpcomingEvents, ]; } }; ?>