@extends('layouts.app') @section('title', 'Campaigns') @section('page-title', 'Campaigns') @section('page-subtitle', 'Manage all your influencer campaigns') @section('topbar-actions') @if (in_array(auth()->user()->role, ['admin', 'manager'])) New Campaign @endif @endsection @php $statuses = [ 'draft' => ['dot' => '#9ca3af', 'label' => 'Draft'], 'active' => ['dot' => '#22c55e', 'label' => 'Active'], 'paused' => ['dot' => '#f59e0b', 'label' => 'Paused'], 'completed' => ['dot' => '#34BDEB', 'label' => 'Completed'], ]; $accentMap = [ 'active' => '#22c55e', 'draft' => '#9ca3af', 'paused' => '#f59e0b', 'completed' => '#34BDEB', ]; $statusBg = [ 'active' => ['bg' => '#DCFCE7', 'color' => '#15803D', 'border' => '#86EFAC'], 'draft' => ['bg' => '#F3F4F6', 'color' => '#4B5563', 'border' => '#D1D5DB'], 'paused' => ['bg' => '#FEF3C7', 'color' => '#92400E', 'border' => '#FCD34D'], 'completed' => ['bg' => '#E0F7FF', 'color' => '#0369A1', 'border' => '#BAE6FD'], ]; $industries = [ 'Any Industry', 'Fashion & Apparel', 'Beauty & Cosmetics', 'Health & Wellness', 'Food & Beverage', 'Technology & Electronics', 'Travel & Hospitality', 'Sports & Fitness', 'Home & Lifestyle', 'Finance & Fintech', 'Education & E-Learning', 'Gaming & Entertainment', 'Automotive', 'Real Estate', 'Healthcare & Pharma', 'Retail & E-Commerce', 'Other', ]; @endphp @push('styles') @endpush @section('content')
{{-- Flash --}} @if (session('success'))
{{ session('success') }}
@endif @php $totalCampaigns = $campaigns->count(); $activeCampaigns = $campaigns->where('status', 'active')->count(); $totalViews = $campaigns->sum(fn($c) => $c->posts_sum_views ?? 0); $totalVideos = $campaigns->sum(fn($c) => $c->posts_count ?? 0); @endphp {{-- ── Summary bar ── --}}
{{ $totalCampaigns }}
Total Campaigns
{{ $activeCampaigns }}
Active Now
{{ $totalVideos }}
Total Videos
{{ number_format($totalViews) }}
Total Views
{{-- ── Toolbar ── --}}
{{ $campaigns->count() }} campaign{{ $campaigns->count() !== 1 ? 's' : '' }}
{{-- ── Campaign list ── --}} @if ($campaigns->isEmpty())

No campaigns yet

@if (in_array(auth()->user()->role, ['admin', 'manager']))

Create your first campaign to start tracking influencer content.

Create Campaign @else

No campaigns have been set up yet. Check back soon.

@endif
@else @php $maxViews = $campaigns->max(fn($c) => $c->posts_sum_views ?? 0) ?: 1; @endphp
@foreach ($campaigns as $campaign) @php $accent = $accentMap[$campaign->status] ?? '#9ca3af'; $sbStyle = $statusBg[$campaign->status] ?? $statusBg['draft']; $views = $campaign->posts_sum_views ?? 0; $pct = min(100, ($views / $maxViews) * 100); $hasProgress = $views > 0; @endphp
{{-- Colour rail --}}
{{-- Main body --}}
{{-- Name + meta --}}
{{ $campaign->name }} @if ($campaign->description)
{{ Str::limit($campaign->description, 85) }}
@endif
@if ($campaign->start_date || $campaign->end_date) @if ($campaign->start_date) {{ \Carbon\Carbon::parse($campaign->start_date)->format('M j, Y') }} @endif @if ($campaign->start_date && $campaign->end_date) – @endif @if ($campaign->end_date) {{ \Carbon\Carbon::parse($campaign->end_date)->format('M j, Y') }} @endif @endif @if ($campaign->industry) {{ $campaign->industry }} @endif @if ($campaign->payment_model) {{ str_replace('_', ' ', ucfirst($campaign->payment_model)) }} @endif
{{-- Status badge --}} {{ ucfirst($campaign->status ?? 'draft') }} {{-- Divider --}}
{{-- Stats --}}
{{ $campaign->posts_count ?? 0 }}
Videos
{{ number_format($views) }}
Views
{{ number_format($campaign->posts_sum_likes ?? 0) }}
Likes
{{-- Actions --}}
@if (in_array(auth()->user()->role, ['admin', 'manager'])) @endif
@if ($hasProgress)
@endif
@endforeach
@endif
Edit Campaign
@csrf @method('PUT')
@foreach ($statuses as $val => $meta)
@endforeach
Delete Campaign

Delete ""?

This will permanently remove the campaign and all its tracked videos. This action cannot be undone.

{{-- .ci-root --}} @endsection @push('scripts') @endpush