validate([ 'song_id' => ['required', 'integer', 'exists:songs,id'], ]); $serviceSong = ServiceSong::findOrFail($serviceSongId); $song = Song::findOrFail($validated['song_id']); $this->songMatchingService->manualAssign($serviceSong, $song); return response()->json([ 'message' => 'Song erfolgreich zugeordnet', 'service_song' => $serviceSong->fresh(), ]); } /** * E-Mail-Anfrage für fehlenden Song senden. */ public function requestSong(int $serviceSongId): JsonResponse { $serviceSong = ServiceSong::findOrFail($serviceSongId); $this->songMatchingService->requestCreation($serviceSong); return response()->json([ 'message' => 'Anfrage wurde gesendet', 'service_song' => $serviceSong->fresh(), ]); } /** * Song-Zuordnung entfernen. */ public function unassign(int $serviceSongId): JsonResponse { $serviceSong = ServiceSong::findOrFail($serviceSongId); $this->songMatchingService->unassign($serviceSong); return response()->json([ 'message' => 'Zuordnung entfernt', 'service_song' => $serviceSong->fresh(), ]); } }