@extends('layouts/layoutMaster') @section('title', 'Paquetes') @section('content') @php use App\Support\Entitlements\EntitlementKey; @endphp @if (session('status'))
{{ session('status') }}
@endif
Paquetes

{{ number_format($totalPlans) }}

Catalogo total
Publicos

{{ number_format($publicPlans) }}

Visibles al mariachi
Privados

{{ number_format($privatePlans) }}

Solo asignables por admin
Activos

{{ number_format($activePlans) }}

Disponibles para asignacion
Paquetes y capacidades

Define vigencias, contacto, cobertura, borradores y señales comerciales del plan sin mezclarlo con la verificación del perfil.

@forelse ($plans as $plan) @php $entitlements = $plan->entitlements->mapWithKeys(fn ($entitlement): array => [$entitlement->key => $entitlement->value]); $publishedLimit = (int) (($entitlements[EntitlementKey::MAX_PUBLISHED_LISTINGS] ?? null) ?? ($entitlements[EntitlementKey::MAX_LISTINGS_TOTAL] ?? $plan->listing_limit)); $openDraftLimit = (int) ($entitlements[EntitlementKey::MAX_OPEN_DRAFTS] ?? \App\Support\Entitlements\EntitlementKey::defaultFor(\App\Support\Entitlements\EntitlementKey::MAX_OPEN_DRAFTS)); $publishedLimitLabel = $publishedLimit === 0 ? 'Ilimitados' : $publishedLimit.' publicados'; $draftLimitLabel = $openDraftLimit === 0 ? 'Sin tope' : $openDraftLimit.' abiertos'; $pricingSummary = collect([ [ 'months' => (int) ($entitlements[EntitlementKey::LISTING_TERM_PRIMARY_MONTHS] ?? 0), 'discount' => (int) ($entitlements[EntitlementKey::LISTING_TERM_PRIMARY_DISCOUNT_PERCENT] ?? 0), ], [ 'months' => (int) ($entitlements[EntitlementKey::LISTING_TERM_SECONDARY_MONTHS] ?? 0), 'discount' => (int) ($entitlements[EntitlementKey::LISTING_TERM_SECONDARY_DISCOUNT_PERCENT] ?? 0), ], [ 'months' => (int) ($entitlements[EntitlementKey::LISTING_TERM_TERTIARY_MONTHS] ?? 0), 'discount' => (int) ($entitlements[EntitlementKey::LISTING_TERM_TERTIARY_DISCOUNT_PERCENT] ?? 0), ], ])->filter(fn (array $term): bool => $term['months'] > 0) ->map(fn (array $term): string => $term['months'].'m'.($term['discount'] > 0 ? ' -'.$term['discount'].'%' : '')) ->implode(' · ') ?: 'Sin vigencias guardadas'; @endphp @empty @endforelse
Paquete Acceso Cuotas Contacto Visibilidad Asignaciones Acciones
{{ $plan->name }} {{ $plan->code }}{{ $plan->badge_text ? ' · '.$plan->badge_text : '' }} {{ $plan->description ?: 'Sin descripcion' }} Vigencias: {{ $pricingSummary }}
{{ $plan->is_public ? 'Publico' : 'Privado' }} {{ $plan->is_active ? 'Activo' : 'Inactivo' }}
Borradores: {{ $draftLimitLabel }}
Publicados: {{ $publishedLimitLabel }}
{{ (int) ($entitlements['max_photos_per_listing'] ?? $plan->max_photos_per_listing) }} foto(s)
{{ ($entitlements['can_add_video'] ?? $plan->max_videos_per_listing > 0) ? (int) ($entitlements['max_videos_per_listing'] ?? $plan->max_videos_per_listing).' video(s)' : 'Sin videos' }}
WhatsApp: {{ ($entitlements['can_show_whatsapp'] ?? $plan->show_whatsapp) ? 'Si' : 'No' }}
Llamada: {{ ($entitlements['can_show_phone'] ?? $plan->show_phone) ? 'Si' : 'No' }}
Prioridad: {{ (int) ($entitlements['priority_level'] ?? $plan->priority_level) }}
Insignia comercial: {{ ($entitlements['has_premium_badge'] ?? $plan->has_premium_badge) ? 'Si' : 'No' }}
Stats: {{ ($entitlements['has_advanced_stats'] ?? $plan->has_advanced_stats) ? 'Si' : 'No' }}
{{ number_format((int) $plan->subscriptions_count) }}
Editar
@csrf @method('PATCH')
Aun no hay paquetes configurados.
@endsection