where('slug', $slug) ->where('published', true) ->first(); if ($competition === null) { abort(404); } $code = trim($ticketCode); if ($code === '' || strlen($code) > 64) { abort(404); } $row = AudienceRegistration::query() ->with('session') ->where('competition_id', $competition->id) ->where('ticket_code', $code) ->first(); if ($row === null || ! $row->isApproved()) { abort(404); } $session = $row->session; return response()->json([ 'session_name' => $session?->name, 'session_name_en' => $session?->name_en, 'event_date_text' => $row->approved_event_time_text, 'address' => $row->approved_event_address_text, 'name' => $row->name, 'ticket_code' => $row->ticket_code, 'checked_in_at' => BizDateTime::toIso8601($row->checked_in_at), 'signup_locale' => SignupDisplay::audienceLocale((int) $row->user_id, (int) $row->competition_id), ]); } }