tabulationService = $tabulationService; $this->doublerService = $doublerService; $this->seatingService = $seatingService; $this->auditionService = $auditionService; } public function publishSeats(Request $request, Audition $audition) { // TODO move this to SeatingService $sessionKey = 'audition'.$audition->id.'seatingProposal'; $seats = $request->session()->get($sessionKey); foreach ($seats as $seat) { Seat::create([ 'ensemble_id' => $seat['ensemble_id'], 'audition_id' => $seat['audition_id'], 'seat' => $seat['seat'], 'entry_id' => $seat['entry_id'], ]); } $audition->addFlag('seats_published'); $request->session()->forget($sessionKey); Cache::forget('resultsSeatList'); // TODO move the previous Cache functions here and in unplublish to the services, need to add an event for publishing an audition as well return redirect()->route('tabulation.audition.seat', ['audition' => $audition->id]); } public function unpublishSeats(Request $request, Audition $audition) { // TODO move this to SeatingService $audition->removeFlag('seats_published'); Cache::forget('resultsSeatList'); Seat::where('audition_id', $audition->id)->delete(); return redirect()->route('tabulation.audition.seat', ['audition' => $audition->id]); } }