@extends('front.layouts.app-auth') @section('content') @php $isSponsor = $sponsorship->sponsor_user_id === $user->id; $isBeneficiary = $sponsorship->beneficiary_user_id === $user->id; // Determine display status - check for expired first $isExpired = false; if ($sponsorship->status === 'pending' && $sponsorship->offer_expire_in) { $expireDate = is_string($sponsorship->offer_expire_in) ? \Carbon\Carbon::parse($sponsorship->offer_expire_in) : $sponsorship->offer_expire_in; $isExpired = $expireDate->isPast(); } $displayStatus = ($sponsorship->is_withdrawal == 1) ? 'withdrawn' : ($isExpired ? 'expired' : ($sponsorship->status ?? 'pending')); // Generate avatar initials if ($isSponsor) { $profileUser = $sponsorship->beneficiary; $profileName = $profileUser ? $profileUser->full_name : 'Unknown'; } else { $profileUser = $sponsorship->sponsor; $profileName = $profileUser ? $profileUser->full_name : 'Unknown'; } $initials = collect(explode(' ', $profileName))->map(function($word) { return strtoupper(substr($word, 0, 1)); })->take(2)->join(''); $colors = ['#3b82f6', '#8b5cf6', '#10b981', '#f59e0b', '#ef4444', '#ec4899']; $avatarColor = $colors[($sponsorship->id % 6)]; // Format offer type $offerTypeMap = [ 1 => 'Endorsement Deal', 2 => 'Brand Ambassador', 3 => 'Team Partnership', 4 => 'Product Sponsorship', 5 => 'Event Sponsor', 6 => 'Media Partnership', ]; $offerTypeSubtitle = 'Partnership'; if ($sponsorship->offer_type && isset($offerTypeMap[$sponsorship->offer_type])) { $offerTypeSubtitle = $offerTypeMap[$sponsorship->offer_type]; } // Format duration $durationMonths = $sponsorship->duration ?? 12; $duration = $durationMonths . ' months'; // Calculate payment progress $totalCommitted = $sponsorship->funding_amount; $totalPaid = $sponsorship->installments() ->whereIn('payment_status', [\App\Models\Users\SponsorshipInstallment::STATUS_PAID, \App\Models\Users\SponsorshipInstallment::STATUS_APPROVED_AND_RELEASED]) ->sum('installment_amount'); $totalAuthorized = 0; // Authorized payments (if any evidence submitted but not paid) $completedMilestones = $sponsorship->installments() ->whereIn('payment_status', [\App\Models\Users\SponsorshipInstallment::STATUS_PAID, \App\Models\Users\SponsorshipInstallment::STATUS_APPROVED_AND_RELEASED]) ->count(); $totalMilestones = $sponsorship->installments()->count() ?: 1; $progressPercentage = $totalCommitted > 0 ? ($totalPaid / $totalCommitted) * 100 : 0; @endphp
@include('front.components.breadcrumbs', [ 'currentPage' => $isSponsor ? 'Sent Offers' : 'Received Offers', 'breadcrumbs' => [ ['label' => $isSponsor ? 'Sent Offers' : 'Received Offers', 'url' => $isSponsor ? route('profile.sponsorships') : route('profile.sponsorships.my_sponsorships')] ] ]) @if($isSponsor)
{{ $initials }}
{{ $beneficiaryProfile['full_name'] ?? 'N/A' }}
{{ $beneficiaryProfile['sport'] ?? 'N/A' }} • {{ $beneficiaryProfile['organization'] ?? 'Independent' }}
89K followers
@if($displayStatus === 'withdrawn') Withdrawn @elseif($displayStatus === 'pending') Pending @elseif($displayStatus === 'active') Accepted @elseif($displayStatus === 'declined') Declined @elseif($displayStatus === 'expired') Expired @endif
@if(isset($beneficiaryProfile) && $beneficiaryProfile['role'] === 'Athlete')
ACHIEVEMENTS
NCAA All-American
National Record Holder
@endif
@else @endif

Offer Details

{{ $sponsorship->offer_title ?? 'Sponsorship Offer' }}
{{ $offerTypeSubtitle }}
Offer Value {!! \App\Helpers\Helper::price($sponsorship->funding_amount, $sponsorship->currency ?? 'USD') !!}
Duration {{ $duration }}
Views {{ $viewCount ?? 0 }}

{{ $isSponsor ? 'Deliverables Required' : 'Your Deliverables' }}

@if($sponsorship->deliverables && $sponsorship->deliverables->count() > 0)
    @foreach($sponsorship->deliverables as $deliverable)
  • {{ $deliverable->description }}
  • @endforeach
@else
  • No deliverables specified
@endif

{{ $isSponsor ? 'Benefits Offered' : 'Benefits You Receive' }}

@if($sponsorship->benefits && $sponsorship->benefits->count() > 0)
    @foreach($sponsorship->benefits as $benefit)
  • {{ $benefit->description }}
  • @endforeach
@else
  • No benefits specified
@endif
@if($isBeneficiary && $sponsorProfile)

Contact Information

{{ $sponsorship->sponsor->full_name ?? 'N/A' }}
@endif @if($sponsorship->installments && $sponsorship->installments->count() > 0)

{{ $isSponsor ? 'Payment Milestones' : 'Your Earnings Progress' }}

{!! \App\Helpers\Helper::price($totalPaid, $sponsorship->currency ?? 'USD') !!} / {!! \App\Helpers\Helper::price($totalCommitted, $sponsorship->currency ?? 'USD') !!}
Completed: {{ $completedMilestones }}/{{ $totalMilestones }} milestones
@if($isSponsor && $totalAuthorized > 0)
Authorized: {!! \App\Helpers\Helper::price($totalAuthorized, $sponsorship->currency ?? 'USD') !!}
@elseif($isBeneficiary && $totalPaid < $totalCommitted)
Pending Payment: {!! \App\Helpers\Helper::price($totalCommitted - $totalPaid, $sponsorship->currency ?? 'USD') !!}
@endif
@foreach($sponsorship->installments as $index => $installment) @php $milestoneNumber = $index + 1; $isCompleted = $installment->isPaid(); $isPending = $installment->payment_status === \App\Models\Users\SponsorshipInstallment::STATUS_PENDING; $isSubmittedForApproval = $installment->payment_status === \App\Models\Users\SponsorshipInstallment::STATUS_SUBMITTED_FOR_APPROVAL; $isDisputed = $installment->payment_status === \App\Models\Users\SponsorshipInstallment::STATUS_DISPUTE; $hasEvidence = !empty($installment->fund_description) || !empty($installment->installment_notes); $isAwaiting = ($isSubmittedForApproval || ($isPending && $hasEvidence)) && $isSponsor; // Check if previous milestone is approved (for sequential approval) $canSubmitForApproval = false; if ($isPending && $isBeneficiary && $displayStatus === 'active') { if ($index === 0) { // First milestone can always be submitted $canSubmitForApproval = true; } else { // Check if previous milestone is approved $previousInstallment = $sponsorship->installments[$index - 1]; $isPreviousApproved = in_array($previousInstallment->payment_status, [ \App\Models\Users\SponsorshipInstallment::STATUS_APPROVED_AND_RELEASED, \App\Models\Users\SponsorshipInstallment::STATUS_PAID, ]); $canSubmitForApproval = $isPreviousApproved; } } $milestoneStatus = 'pending'; if ($isCompleted) { $milestoneStatus = 'completed'; } elseif ($isDisputed) { $milestoneStatus = 'disputed'; } elseif ($isSubmittedForApproval) { $milestoneStatus = 'submitted'; } elseif ($isAwaiting) { $milestoneStatus = 'awaiting'; } $percentage = $totalCommitted > 0 ? ($installment->installment_amount / $totalCommitted) * 100 : 0; $dueDate = $installment->installment_date ? \App\Helpers\Helper::showdate($installment->installment_date, false) : 'N/A'; $paidDate = $installment->approval_release_date ? \App\Helpers\Helper::showdate($installment->approval_release_date, false) : null; $approvedDate = $installment->updated_at && $isCompleted ? \App\Helpers\Helper::showdate($installment->updated_at, false) : null; $submittedDate = $installment->approval_request_date ? \App\Helpers\Helper::showdate($installment->approval_request_date, false) : null; $disputeDate = $installment->dispute_date ? \App\Helpers\Helper::showdate($installment->dispute_date, false) : null; $adminDisputeResolvedAt = $installment->admin_disput_resolved_at ? \App\Helpers\Helper::showdate($installment->admin_disput_resolved_at, false) : null; @endphp
@if($isCompleted) @else {{ $milestoneNumber }} @endif
{{ $installment->fund_purpose ?? 'Milestone ' . $milestoneNumber }}
{!! \App\Helpers\Helper::price($installment->installment_amount, $sponsorship->currency ?? 'USD') !!} ({{ number_format($percentage, 0) }}%)
Due: {{ $dueDate }}
@if($isCompleted) COMPLETED @elseif($isDisputed) DISPUTED @elseif($isSubmittedForApproval) SUBMITTED FOR APPROVAL @elseif($isAwaiting) AWAITING APPROVAL @else PENDING @endif
@if($isCompleted && $approvedDate && $paidDate)
Approved: {{ $approvedDate }} Paid: {{ $paidDate }}
@elseif($isDisputed)
Milestone Disputed
Disputed on: {{ $disputeDate ?? 'N/A' }} @if($installment->disput_reason)
Dispute Reason:
{{ $installment->disput_reason }}
@endif @if($adminDisputeResolvedAt) Admin Response: {{ $adminDisputeResolvedAt }} @else Awaiting admin response @endif
@elseif($isSubmittedForApproval && $submittedDate)
Submitted: {{ $submittedDate }}
@endif @if(($isAwaiting || $isSubmittedForApproval) && $isSponsor)
Completion Evidence:
{{ $installment->fund_description ?? $installment->installment_notes ?? 'Evidence submitted' }}
@elseif($canSubmitForApproval)
@elseif($isDisputed)
This milestone has been disputed. Awaiting admin review.
@elseif($isSubmittedForApproval && $isBeneficiary)
Awaiting sponsor approval
@elseif($isPending && $isBeneficiary && $displayStatus === 'active' && !$canSubmitForApproval && $index > 0)
Previous milestone must be approved first
@endif
@endforeach
@endif @if($sponsorship->notes)

Notes

{{ $sponsorship->notes }}

@endif
{{ $isSponsor ? 'Offer Sent' : 'Offer Received' }}: {{ $sponsorship->created_at ? \App\Helpers\Helper::showdate($sponsorship->created_at, false) : 'N/A' }}
@if($sponsorship->offer_expire_in && ($displayStatus === 'pending' || $displayStatus === 'expired'))
{{ $displayStatus === 'expired' ? 'Expired On' : 'Expires On' }}: {{ $sponsorship->offer_expire_in ? \App\Helpers\Helper::showdate($sponsorship->offer_expire_in, false) : 'N/A' }}
@endif @if($acceptedDate)
{{ $isSponsor ? 'Accepted On' : 'Accepted On' }}: {{ $acceptedDate }}
@elseif($declinedDate)
Declined On: {{ $declinedDate }}
@endif
@if($isSponsor && $displayStatus === 'declined')
Decline Reason
@if($declineReason)
{{ $declineReason }}
@else
No reason provided
@endif
@endif
@if($isSponsor) @if($displayStatus === 'pending' && !$sponsorship->is_withdrawal) Edit @elseif(($displayStatus === 'declined' || $displayStatus === 'expired') && !$sponsorship->is_withdrawal) Resend Offer Edit & Resend @endif @elseif($isBeneficiary) @if($displayStatus === 'pending' && !$sponsorship->is_withdrawal) @endif @endif
@if($displayStatus === 'active')
@endif

Messages

@forelse($messages ?? [] as $message)
{{ substr($message->sender->full_name ?? 'U', 0, 2) }}
{{ $message->sender->full_name ?? 'Unknown' }} @if($message->sender_user_id === $user->id) @if($message->is_read) @else @endif @endif
{{ $message->created_at->format('M d, h:i A') }}
@if($message->message)
{{ $message->message }}
@endif @if($message->file) @endif
@empty

No messages yet. Start the conversation!

@endforelse
@endsection @push('page_script') @endpush