@extends('layouts.admin') @section('title', 'Prizes & odds') @section('admin-content')
SHAPE THE POSSIBILITIES

Prizes & odds.

Give each prize its own chance to shine.

Manage wheel slotsAdd a prize +
@php($imagePercent = (int) \Illuminate\Support\Facades\DB::table('wheel_settings')->where('id', 1)->value('wheel_image_percent'))
has('wheel_image_percent')) open @endif>Wheel image size{{ $imagePercent }}%Adjust size ▾
@csrf @method('PUT')
10–100% of each slot’s outer edge. Resizes the circular badge and stitching. Refresh the frontend after saving.
How chances work

Chance = prize weight ÷ total weight of active, in-stock prizes assigned to the wheel. Sold-out, inactive, zero-weight, and unassigned prizes cannot win. Repeating a prize in several slots doesn’t increase its chance. The displayed order is shuffled for every player page.

Edit several prizes, then Save all changes. This saves edited rows on the current page only. Slot images save separately; save or discard prize edits before changing images or deleting prizes. On smaller screens, scroll the table sideways.

No prizes changed
@foreach($prizes as $prize) @endforeach
ActivePrize name
Description
Chance weightSlot colorSlot imagePrize stockUpdate / Delete
active) aria-label="{{ $prize->name }} active"> @if(!$assigned->contains($prize->id))Not assigned to the wheel · Assign a slot@endif {{ $totalWeight && $prize->active && $prize->stock > 0 && $assigned->contains($prize->id) ? number_format($prize->weight / $totalWeight * 100, 2) : '0.00' }}% chance @forelse($slots->where('prize_id', $prize->id) as $slot)@include('admin.partials.slot-image', ['slot' => $slot])@emptyAssign a wheel slot to upload an image.@endforelse digital_value) min="0" max="1000000" required aria-label="Stock for {{ $prize->name }}">@if(!$prize->digital_value)@endif{{ $prize->digital_value ? 'Calculated from PIN inventory':'Remaining units' }}
@csrf @method('PUT')
@csrf @method('DELETE')
@include('admin.partials.list-pagination',['paginator'=>$prizes,'itemsLabel'=>'prizes'])

Create a new prize

✦
@csrf

Recent stock top-ups

@forelse($stockUpdates as $topup)@empty@endforelse
PrizeAddedStock after top-upAdminDate
{{ $topup->prize_name }}+{{ $topup->amount }}{{ $topup->balance_after }}{{ $topup->admin_name }}{{ \Carbon\Carbon::parse($topup->created_at)->format('d M, H:i') }}
Stock top-ups will be recorded here.
@endsection @push('scripts') @endpush @push('scripts')@endpush