@extends('layouts.admin') @section('title', 'الحجوزات النشطة — دمشق باركينغ') @section('page-title', 'الحجوزات النشطة') @section('styles') @endsection @section('content') {{-- ── Page header ─────────────────────────────────────────────────────────── --}}

الحجوزات النشطة

السيارات داخل المواقف حالياً

تحديث بعد 30ث
{{-- ── Stat cards ───────────────────────────────────────────────────────────── --}}
{{ $stats['total'] }}
إجمالي النشطة
{{ $stats['walkin'] }}
دخول مباشر
{{ $stats['reservation'] }}
حجوزات مسبقة
{{ $stats['overdue'] }}
متأخرة عن الخروج
{{-- ── Filter bar ───────────────────────────────────────────────────────────── --}}
@if(request('parking_lot_id') || request('search')) مسح @endif
{{-- ── Bookings table ───────────────────────────────────────────────────────── --}}
قائمة الحجوزات {{ $activeBookings->total() }} سجل
@forelse($activeBookings as $booking) @php $elapsedMin = $booking->start_time->diffInMinutes(now()); $remainMins = now()->diffInMinutes($booking->end_time, false); $isOverdue = $remainMins < 0; $isWarning = !$isOverdue && $remainMins < 15; $totalMins = max(1, $booking->start_time->diffInMinutes($booking->end_time)); $pctUsed = min(100, round($elapsedMin / $totalMins * 100)); $barColor = $isOverdue ? '#ef4444' : ($isWarning ? '#f59e0b' : '#10b981'); $rowClass = $isOverdue ? 'is-overdue' : ($isWarning ? 'is-warning' : 'is-ok'); $source = $booking->source ?? 'walk_in'; @endphp {{-- Plate + source --}} {{-- Driver --}} {{-- Lot --}} {{-- Entry time --}} {{-- Duration / status --}} {{-- Action --}} @empty @endforelse
السيارة السائق الموقف وقت الدخول المدة / الوضع إجراء
{{ $booking->vehicle_plate ?? '—' }}
@if($source === 'walk_in') مباشر @else حجز @endif
{{ $booking->customer_name ?? '—' }}
@if($booking->phone)
{{ $booking->phone }}
@endif
{{ $booking->parkingLot->name }}
{{ $booking->start_time->format('H:i') }}
{{ $booking->start_time->format('d/m/Y') }}
@if($isOverdue) تجاوز {{ floor(abs($remainMins)/60) > 0 ? floor(abs($remainMins)/60).'س ' : '' }}{{ abs($remainMins)%60 }}د @elseif($isWarning) متبقي {{ $remainMins }}د @else {{ floor($elapsedMin/60) }}س {{ $elapsedMin%60 }}د @endif

لا توجد حجوزات نشطة

جميع المواقف خالية حالياً

@if($activeBookings->hasPages())
عرض {{ $activeBookings->firstItem() }}–{{ $activeBookings->lastItem() }} من {{ $activeBookings->total() }} {{ $activeBookings->appends(request()->query())->links('pagination::bootstrap-5') }}
@endif
@push('scripts') @endpush @endsection