@extends('layouts.app') @section('title','Plans — BlueBando v3') @section('content') {{-- Header + router filter + actions --}}

Plans

Manage hotspot plans / profiles per router. Changes are synced to MikroTik.
+ New Plan
{{-- Flash message --}} @if (session('status'))
{{ session('status') }}
@endif {{-- Plans table (from DB) --}}
@if($plans->count()) @foreach($plans as $plan) @endforeach
Name / Profile Router Price Validity Rate Limit DL / UL Limit (MB) Status Updated Actions
{{ $plan->name }}
Profile: {{ $plan->profile ?: $plan->name }}
@if($plan->router)
{{ $plan->router->name }}
{{ $plan->router->host }}
@else Any router @endif
{{ number_format($plan->price) }} {{ $plan->currency ?: config('bluebando.currency','TZS') }} {{ $plan->validity_hours }}h {{ $plan->rate_limit ?: '—' }} @php $dl = $plan->download_limit_mb; $ul = $plan->upload_limit_mb; @endphp @if($dl || $ul) {{ $dl ?: 0 }}/{{ $ul ?: 0 }} @else Unlimited @endif @if($plan->is_active) @else Disabled @endif {{ optional($plan->updated_at)->diffForHumans() ?? '—' }}
Edit
@csrf @method('DELETE')
{{-- Pagination --}}
{{ $plans->withQueryString()->links() }}
@else
No plans found yet. Click “+ New Plan” to create your first hotspot plan and it will be synced to MikroTik automatically.
@endif
{{-- Live profiles directly from MikroTik for selected router --}} @if(!empty($liveRouter))

Live profiles on router: {{ $liveRouter->name }} ({{ $liveRouter->host }})

Data fetched in real-time from /ip hotspot user profile.
@if(!empty($liveProfiles)) @foreach($liveProfiles as $p) @endforeach
Name Rate limit Shared users Idle timeout Keepalive Parent queue Comment
{{ $p['name'] }} {{ $p['rate_limit'] ?? '—' }} {{ $p['shared_users'] ?? '—' }} {{ $p['idle_timeout'] ?? '—' }} {{ $p['keepalive_timeout'] ?? '—' }} {{ $p['parent_queue'] ?? '—' }} {{ $p['comment'] ?? '—' }}
@else
No hotspot user profiles found on this router (or failed to read API). Check MikroTik API connectivity & permissions.
@endif
@endif @endsection