request = $request; } public function execute(): CreateEventResponse { $response = new CreateEventResponse(); $prefix = $this->request->begin->format('Y-m_'); if (!str_starts_with($this->request->name, $prefix)) { $this->request->name = $prefix . $this->request->name; } $event = Event::create([ 'tenant' => app('tenant')->slug, 'name' => $this->request->name, 'location' => $this->request->location, 'postal_code' => $this->request->postalCode, 'email' => $this->request->email, 'start_date' => $this->request->begin, 'end_date' => $this->request->end, 'early_bird_end' => $this->request->earlyBirdEnd, 'registration_final_end' => $this->request->registrationFinalEnd, 'early_bird_end_amount_increase' => $this->request->earlyBirdEndAmountIncrease, 'account_owner' => $this->request->accountOwner, 'account_iban' => $this->request->accountIban, 'participation_fee_type' => $this->request->participationFeeType->slug, 'pay_per_day' => $this->request->payPerDay, 'pay_direct' => $this->request->payDirect, 'total_max_amount' => 0, 'support_per_person' => 0, 'support_flat' => 0, ]); if ($event !== null) { EventEatingHabits::create([ 'event_id' => $event->id, 'eating_habit_id' => EatingHabit::where('slug', EatingHabit::EATING_HABIT_VEGAN)->first()->id, ]); EventEatingHabits::create([ 'event_id' => $event->id, 'eating_habit_id' => EatingHabit::where('slug', EatingHabit::EATING_HABIT_VEGETARIAN)->first()->id, ]); if (app('tenant')->slug === 'lv') { foreach(Tenant::where(['is_active_local_group' => true])->get() as $tenant) { EventLocalGroups::create(['event_id' => $event->id, 'local_group_id' => $tenant->id]); } } else { EventLocalGroups::create(['event_id' => $event->id, 'local_group_id' => app('tenant')->id]); } $response->success = true; $response->event = $event; } return $response; } }