@extends('layouts.admin')
@section('title','Booking Management')
@section('subtitle','Monitor scheduled and on-demand consultations across the platform.')
@section('content')
<div class="booking-stats">
    <article>
        <i data-lucide="calendar-days"></i>
        <div>
            <span>Total Bookings</span>
            <strong>{{number_format($stats['total'])}}</strong>
            <small>All platform consultations</small>
        </div>
    </article>
    <article>
        <i data-lucide="calendar-clock"></i>
        <div>
            <span>Upcoming Paid</span>
            <strong>{{number_format($stats['upcoming'])}}</strong>
            <small>Accepted future consultations</small>
        </div>
    </article>
    <article class="live">
        <i data-lucide="video"></i>
        <div>
            <span>In Progress</span>
            <strong>{{number_format($stats['in_progress'])}}</strong>
            <small>Active consultation rooms</small>
        </div>
    </article>
    <article>
        <i data-lucide="circle-check-big"></i>
        <div>
            <span>Completed</span>
            <strong>{{number_format($stats['completed'])}}</strong>
            <small>Closed consultations</small>
        </div>
    </article>
    <article class="booking-value">
        <i data-lucide="circle-dollar-sign"></i>
        <div>
            <span>Paid Booking Value</span>
            <strong>₱{{number_format($stats['paid_value'],2)}}</strong>
            <small>Gross consultation fees</small>
        </div>
    </article>
</div>
<form class="booking-filters" method="get">
    <div class="booking-search">
        <i data-lucide="search"></i>
        <input name="q" value="{{request('q')}}" placeholder="Booking ID, client, or professional">
    </div>
    <select name="status">
        <option value="">All booking statuses</option>@foreach(['pending'=>'Pending','accepted'=>'Accepted','in_progress'=>'In Progress','completed'=>'Completed','declined'=>'Declined','cancelled'=>'Cancelled','expired'=>'Expired'] as $value=>$label) <option value="{{$value}}" @selected(request('status')===$value)>{{$label}}</option>@endforeach
    </select>
    <select name="payment_status">
        <option value="">All payment statuses</option>@foreach(['pending','paid','failed'] as $value) <option value="{{$value}}" @selected(request('payment_status')===$value)>{{ucfirst($value)}}</option>@endforeach
    </select>
    <select name="type">
        <option value="">All booking types</option>
        <option value="appointment" @selected(request('type')==='appointment' )>Scheduled</option>
        <option value="realtime" @selected(request('type')==='realtime' )>On-demand</option>
    </select>
    <label>
        <span>From</span>
        <input type="date" name="date_from" value="{{request('date_from')}}">
    </label>
    <label>
        <span>To</span>
        <input type="date" name="date_to" value="{{request('date_to')}}">
    </label>
    <button>
        <i data-lucide="list-filter"></i>Filter </button>@if(request()->query()) <a href="{{route('bookings')}}">Clear</a>@endif
</form>
<section class="booking-table-card">
    <div class="table-scroll">
        <table class="booking-table">
            <thead>
                <tr>
                    <th>Booking</th>
                    <th>Client</th>
                    <th>Professional</th>
                    <th>Schedule</th>
                    <th>Type</th>
                    <th>Status</th>
                    <th>Payment</th>
                    <th class="amount-column">Amount</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>@forelse($bookings as $booking) @php $clientName=$booking->client?->profile?->full_name??'Client'; $professionalName=$booking->professional?->user?->profile?->full_name??'Professional'; $color=$booking->professional?->profession?->color_hex??'#7bd300'; $clientImage=trim((string)($booking->client?->profile?->image??'')); $clientImageUrl=$clientImage!==''?(Illuminate\Support\Str::startsWith($clientImage,['http://','https://'])?$clientImage:rtrim(config('admin.api_url'),'/').'/storage/users/'.$booking->client_id.'/'.ltrim($clientImage,'/')):null; $professionalImage=trim((string)($booking->professional?->user?->profile?->image??'')); $professionalImageUrl=$professionalImage!==''?(Illuminate\Support\Str::startsWith($professionalImage,['http://','https://'])?$professionalImage:rtrim(config('admin.api_url'),'/').'/storage/users/'.$booking->professional?->user_id.'/'.ltrim($professionalImage,'/')):null; $displayStatus=strtolower(str_replace(' ','_',$booking->displayStatus())); @endphp <tr>
                    <td>
                        <b>#{{strtoupper(substr($booking->uuid,0,8))}}</b>
                        <small>{{$booking->created_at?->format('M d, Y')}}</small>
                    </td>
                    <td>
                        <div class="booking-person">
                            <div class="avatar booking-avatar">@if($clientImageUrl) <img src="{{$clientImageUrl}}" alt="{{$clientName}}" onerror="this.hidden=true;this.nextElementSibling.hidden=false">
                                <span hidden>{{strtoupper(substr($clientName,0,1))}}</span>@else <span>{{strtoupper(substr($clientName,0,1))}}</span>@endif
                            </div>
                            <b>{{$clientName}}</b>
                        </div>
                    </td>
                    <td>
                        <div class="booking-person">
                            <div class="avatar booking-avatar professional" style="--avatar-border:{{$color}}">@if($professionalImageUrl) <img src="{{$professionalImageUrl}}" alt="{{$professionalName}}" onerror="this.hidden=true;this.nextElementSibling.hidden=false">
                                <span hidden>{{strtoupper(substr($professionalName,0,1))}}</span>@else <span>{{strtoupper(substr($professionalName,0,1))}}</span>@endif
                            </div>
                            <div>
                                <b>{{$professionalName}}</b>
                                <small>{{$booking->professional?->profession?->name}}</small>
                            </div>
                        </div>
                    </td>
                    <td>
                        <b>{{$booking->date?->format('M d, Y')??'On-demand'}}</b>
                        <small>{{$booking->time?:($booking->type==='realtime'?'Starts on join':'No time')}}</small>
                    </td>
                    <td>
                        <span class="booking-type {{$booking->type}}">
                            <i data-lucide="{{$booking->type==='realtime'?'zap':'calendar-days'}}"></i>{{$booking->type==='realtime'?'On-demand':'Scheduled'}}
                        </span>
                    </td>
                    <td>
                        <span class="booking-status {{$displayStatus}}">
                            <i></i>{{$booking->displayStatus()}}
                        </span>
                    </td>
                    <td>
                        <span class="payment-status {{$booking->payment_status}}">{{ucfirst($booking->payment_status)}}</span>
                    </td>
                    <td class="amount-column">
                        <b>₱{{number_format($booking->amount,2)}}</b>
                    </td>
                    <td>
                        <a class="booking-view" href="{{route('bookings.show',$booking)}}">
                            <i data-lucide="eye"></i>
                        </a>
                    </td>
                </tr> @empty <tr>
                    <td colspan="9" class="empty">No bookings match these filters.</td>
                </tr>@endforelse </tbody>
        </table>
    </div>
    <div class="table-footer">
        <span>Showing {{$bookings->firstItem()??0}} to {{$bookings->lastItem()??0}} of {{number_format($bookings->total())}} bookings</span>{{$bookings->onEachSide(1)->links('vendor.pagination.default')}}
    </div>
</section>
@endsection
