@php($title = 'Memberships') @php($heading = 'Memberships') @php($sidebar = view()->make('dashboard.partials.admin-sidebar')->render()) @extends('layouts.dashboard', compact('title','heading','sidebar')) @section('content')
@isset($missing) @if($missing)
Membership table is missing. Please run `php artisan migrate`.
@endif @endisset

Manage Membership Plans

@if(session('status') || session('warning'))
@if(session('status'))
{{ session('status') }}
@endif @if(session('warning'))
{{ session('warning') }} @php($trimmed = (array) (session('trimmed_plans') ?? [])) @if(count($trimmed)) Affected: {{ implode(', ', $trimmed) }} @endif
@endif
@endif
@csrf @foreach(($plans ?? []) as $plan)
Plan: {{ $plan->name }} ({{ $plan->billing_period }}) {{ $plan->active ? 'Active' : 'Inactive' }}
CTA & Card Accent
Preview
Badge & Colors
Badge Preview {{ $plan->badge_label ?? 'Badge' }}
@php($rows = collect((array)($plan->details ?? [])))
Features: {{ $rows->count() }}
@foreach($rows as $i => $row)
⋮⋮
@endforeach
Restrictions
@foreach(($categories ?? []) as $cat) @php($allowed = collect((array)($plan->allowed_category_slugs ?? []))) @endforeach
@unless(($hasActivationCol ?? false))

Activation limit field will not be saved until its database column exists.

@endunless

These limits are saved per plan and can be enforced in download logic.

@endforeach
@endsection @section('scripts') @endsection