@extends('layouts.admin') @section('title', 'Players') @section('admin-content') @include('admin.partials.player-tabs', ['activeTab' => 'players'])
@if($search)Clear@endif
@forelse($players as $player)@empty@endforelse
PlayerCreditsSpinsIP addressesEmail accessPurchase creditsActions
{{ $player->name }}{{ $player->email }}{{ $player->spin_credits }}{{ $player->signup_credits_received }} at registration{{ $player->spins_count }}{{ $player->last_ip ?: 'Not recorded yet' }}Registered: {{ $player->registration_ip ?: 'Not recorded yet' }}@if($player->last_ip && $activeIPs->contains($player->last_ip))Last IP is blocked@endifManage IP rules ↗@php($emailBlock = $emailBlocks->get($player->email))
@if($emailBlock?->active)
@csrf @method('PUT')
@else@endif @php($blockIp = $player->last_ip ?: $player->registration_ip) @if($blockIp && !$activeIPs->contains($blockIp))@elseif($blockIp)IP is blocked@else@endif
Issue purchase code
{{ $search ? 'No players match your search.' : 'No players yet. Player registration is available on the frontend.' }}

Recent credit grants

Audit trail
@forelse($grants as $grant)@empty@endforelse
PlayerCreditsGranted byNoteDate
{{ $grant->player_name }}+{{ $grant->amount }}{{ $grant->admin_name }}{{ $grant->note ?: '—' }}{{ \Carbon\Carbon::parse($grant->created_at)->format('d M, H:i') }}
No historical manual credit grants. New credits are recorded under Purchase codes.
@foreach($players as $player)

Edit player

{{ $player->name }} · Player #{{ $player->id }}

{{ $player->spin_credits }} credits{{ $player->spins_count }} spinsJoined {{ $player->created_at->format('d M Y') }}

Last IP: {{ $player->last_ip ?: 'Not recorded' }}
Registration IP: {{ $player->registration_ip ?: 'Not recorded' }}

@if((int) old('editing_player') === $player->id && $errors->any())@endif @php($customerProfile = \Illuminate\Support\Facades\DB::table('customer_profiles')->where('user_id', $player->id)->first()) @if($customerProfile)
Mobile: {{ $customerProfile->mobile ?: 'Not provided' }}Cat: {{ $customerProfile->cat_name ?: 'Not provided' }}Email offers: {{ $customerProfile->marketing_email ? 'Opted in' : 'Not opted in' }}WhatsApp/SMS offers: {{ $customerProfile->marketing_mobile ? 'Opted in' : 'Not opted in' }}Cats: {{ $customerProfile->cat_count ?? 'Not provided' }}Source: {{ $customerProfile->source ?: 'Not provided' }}Interests: {{ implode(', ', json_decode($customerProfile->interests ?: '[]', true) ?: []) ?: 'Not provided' }}
@endif
@csrf @method('PUT')
@endforeach

Block player access

@csrf
@endsection @push('scripts') @endpush