{{-- Chargeback Notification Email - Atomic Design System v2.0 Sent when a chargeback is created, updated, or closed Note: $colors automatically injected via View Composer --}} @component('emails.layouts.base', [ 'title' => 'Chargeback Notification', 'previewText' => 'Order ' . $orderNumber, 'colors' => $colors ]) @component('emails.atoms.h1', ['colors' => $colors]) @if($notificationType === 'created') Chargeback Alert @elseif($notificationType === 'updated') Chargeback Update @elseif($notificationType === 'closed') @if($chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_WON) Chargeback Won @elseif($chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_LOST) Chargeback Lost @else Chargeback Closed @endif @endif @endcomponent @component('emails.atoms.text', ['colors' => $colors]) Order {{ $orderNumber }} @endcomponent @if($requiresAction) @component('emails.organisms.alert-box', [ 'variant' => 'warning', 'title' => 'Action Required', 'colors' => $colors ])

Evidence Due: {{ $evidenceDueBy ? $evidenceDueBy->format('F j, Y g:i A') : 'Not specified' }}

This chargeback requires immediate attention and evidence submission to Stripe.

Review order details and customer communication

Gather proof of service/delivery (tickets, attendance records)

Submit evidence through Stripe Dashboard before deadline

Document all actions taken

@include('emails.atoms.spacer', ['height' => '12px'])
@component('emails.molecules.button', [ 'href' => $adminDashboardUrl . '/orders/' . $order->id, 'variant' => 'primary', 'size' => 'medium', 'colors' => $colors ]) View Order Details @endcomponent
@endcomponent @else @php if ($notificationType === 'closed' && $chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_WON) { $alertVariant = 'success'; $alertTitle = 'Chargeback Resolved'; } elseif ($notificationType === 'closed' && $chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_LOST) { $alertVariant = 'error'; $alertTitle = 'Chargeback Resolved'; } else { $alertVariant = 'warning'; $alertTitle = $notificationType === 'created' ? 'New Chargeback Received' : 'Chargeback Status Updated'; } @endphp @component('emails.organisms.alert-box', [ 'variant' => $alertVariant, 'title' => $alertTitle, 'colors' => $colors ]) @if($notificationType === 'created') A customer has disputed a charge through their bank/card issuer. @elseif($notificationType === 'updated') The status of this chargeback has been updated. @elseif($notificationType === 'closed') This chargeback has been closed and resolved. @endif @endcomponent @endif @include('emails.atoms.spacer', ['height' => '20px']) @component('emails.atoms.h3', ['colors' => $colors]) Chargeback Details @endcomponent @component('emails.organisms.card', ['colors' => $colors]) @if($evidenceDueBy) @endif @if($notificationType === 'closed' && $resolutionType) @endif
Chargeback Amount: {{ $chargebackCurrency }} {{ number_format($chargebackAmount, 2) }}
Status: @component('emails.molecules.badge', [ 'variant' => $requiresAction ? 'error' : ($chargeback->isResolved() ? 'success' : 'warning'), 'colors' => $colors ]) {{ $chargebackStatus }} @endcomponent
Reason: {{ $chargebackReason }}
Evidence Due By: {{ $evidenceDueBy->format('F j, Y g:i A') }}
Resolution: {{ ucwords(str_replace('_', ' ', $resolutionType)) }}
Resolved At: {{ $resolvedAt ? $resolvedAt->format('F j, Y g:i A') : 'N/A' }}
Dispute ID: {{ $disputeId }}
@endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @component('emails.atoms.h3', ['colors' => $colors]) Order Information @endcomponent @component('emails.organisms.card', ['colors' => $colors]) @component('emails.molecules.info-row', [ 'label' => 'Order Number', 'value' => $orderNumber, 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Order Date', 'value' => $orderDate->format('F j, Y g:i A'), 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Order Total', 'value' => '€' . number_format($orderTotal, 2), 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Event', 'value' => $eventName, 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Customer Name', 'value' => $customerName, 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Customer Email', 'value' => $customerEmail, 'colors' => $colors, 'removeBorder' => true ]) @endcomponent @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @component('emails.atoms.h3', ['colors' => $colors]) Technical Details @endcomponent @component('emails.organisms.card', ['colors' => $colors])
@if($chargeId) Charge ID: {{ $chargeId }}
@endif @if($paymentIntentId) Payment Intent ID: {{ $paymentIntentId }} @endif
@endcomponent @component('emails.atoms.h3', ['colors' => $colors]) Next Steps @endcomponent @component('emails.atoms.text', ['colors' => $colors]) @if($requiresAction) Review the dispute in your Stripe Dashboard and submit evidence before the deadline. Contact the customer if needed to resolve the issue. @elseif($notificationType === 'created') Review the chargeback details and monitor for updates. You may need to submit evidence. @elseif($notificationType === 'closed') No further action required. Review the outcome and update internal records as needed. @else Monitor the chargeback status and be prepared to submit evidence if required. @endif @endcomponent @component('emails.atoms.small', ['colors' => $colors]) This is an automated notification from Global Gala Ticketing System. For assistance, contact {{ $supportEmail }} @endcomponent @component('emails.atoms.small', ['colors' => $colors]) View Order in Admin Dashboard @endcomponent @endcomponent