country + status added and other changes
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Country;
|
||||
use App\Models\GameSession;
|
||||
use App\Models\GameShot;
|
||||
use App\Models\Registration;
|
||||
@@ -10,13 +11,28 @@ use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class RegistrationController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$registrations = Registration::orderBy('id', 'desc')->paginate(20);
|
||||
$search = trim($request->input('search', ''));
|
||||
|
||||
return view('registrations', compact('registrations'));
|
||||
$query = Registration::with(['sessions.shots', 'comments']);
|
||||
|
||||
if ($search) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('name', 'like', "%{$search}%")
|
||||
->orWhere('phone', 'like', "%{$search}%")
|
||||
->orWhere('email', 'like', "%{$search}%");
|
||||
});
|
||||
}
|
||||
|
||||
$registrations = $query->orderBy('id', 'desc')->paginate(20)->withQueryString();
|
||||
|
||||
$data['registrations'] = $registrations;
|
||||
$data['search'] = $search;
|
||||
$data['countries'] = Country::where('status', 1)->orderBy('title')->get(['id','title','country_flag']);
|
||||
|
||||
return view('registrations', $data);
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('registrations.create');
|
||||
@@ -311,5 +327,51 @@ class RegistrationController extends Controller
|
||||
|
||||
return view('leaderboard', $data);
|
||||
}
|
||||
|
||||
public function history($id)
|
||||
{
|
||||
$reg = Registration::with(['sessions.shots'])->findOrFail($id);
|
||||
|
||||
$sessions = $reg->sessions
|
||||
->sortByDesc('play_date')
|
||||
->map(fn($s) => [
|
||||
'date' => $s->play_date,
|
||||
'score' => $s->score,
|
||||
'shots' => $s->shots->sortBy('shot_number')->map(fn($sh) => (bool)$sh->result)->values(),
|
||||
])->values();
|
||||
|
||||
return response()->json(['sessions' => $sessions]);
|
||||
}
|
||||
|
||||
public function updateCountry(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'country_id' => 'required|exists:countries,id',
|
||||
]);
|
||||
|
||||
$registration = Registration::findOrFail($id);
|
||||
$registration->update(['country_id' => $request->country_id]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'ok',
|
||||
'country_id' => $registration->country_id,
|
||||
'country_name' => $registration->country->title,
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateStatus(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'status' => 'required|in:hot,warm,cold',
|
||||
]);
|
||||
|
||||
$registration = Registration::findOrFail($id);
|
||||
$registration->update(['status' => $request->status]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'ok',
|
||||
'value' => $registration->status,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user