@extends('layouts.app') @section('content') @php $status = $result['status'] ?? null; $isAllowed = $status === 'valid'; $resultClass = $status ? ($isAllowed ? 'verify-valid' : 'verify-invalid') : ''; @endphp
Gate scan

Scanner checkpoint

Scan ticket barcode, ticket QR, or membership card. The field stays ready for the next scan.
Scanner ready

Scan input

@csrf @if($gates->count()) @else @endif
Most scanners type the code and press Enter automatically.

Last scans

@forelse($recentScans as $scan)
{{ $scan->message }}
{{ $scan->gate_name }} - {{ $scan->entry_time->format('d M h:i:s A') }}
{{ strtoupper($scan->status) }}
@empty
No scans yet.
@endforelse
@isset($result)
Scan result

{{ $isAllowed ? 'ENTRY ALLOWED' : strtoupper($result['status']) }}

{{ $result['message'] }}

@if($result['ticket'])
Ticket{{ $result['ticket']->ticket_number }}
Category{{ $result['ticket']->category->name ?? '-' }}
Status{{ strtoupper($result['ticket']->status) }}
Gate{{ $result['ticket']->gate_name ?: request('gate_name') }}
@endif @if($result['membership'])
Member{{ $result['membership']->name }}
Member no{{ $result['membership']->membership_number }}
Valid till{{ $result['membership']->expiry_date->format('d M Y') }}
Status{{ strtoupper($result['membership']->status) }}
@endif
@else
Waiting

READY TO SCAN

Scan a ticket or membership card. Valid tickets are marked used immediately.

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