{{-- Complimentary Ticket Email - COMP-001 Sent when complimentary (guest) tickets are issued Simplified version without payment details - focuses on ticket delivery Note: $colors automatically injected via View Composer --}} @component('emails.layouts.base', [ 'title' => 'Your Tickets', 'previewText' => 'Your complimentary tickets are ready', 'colors' => $colors ]) @component('emails.atoms.h1', ['colors' => $colors]) Your Tickets Are Ready @endcomponent @component('emails.atoms.text', ['colors' => $colors]) You've been issued {{ $ticketCount }} complimentary {{ $ticketCount === 1 ? 'ticket' : 'tickets' }} for {{ $eventName }}. @endcomponent @include('emails.atoms.spacer', ['height' => '16px']) @component('emails.organisms.alert-box', [ 'variant' => 'success', 'title' => 'Complimentary Guest Tickets', 'colors' => $colors ]) Your tickets have been confirmed. Please bring them to the venue entrance. @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) {{-- PDF Download / Attachment Notice --}} @if($hasPdfAttachment) @component('emails.organisms.alert-box', [ 'variant' => 'info', 'title' => 'Your Tickets', 'colors' => $colors ]) Your tickets are attached to this email as a PDF. Please print or display on your mobile device at the venue. @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @elseif($downloadUrl) @component('emails.organisms.alert-box', [ 'variant' => 'warning', 'title' => 'Download Your Tickets', 'colors' => $colors ]) Your tickets are ready for download. Click the button below to get your printable PDF. @endcomponent @include('emails.atoms.spacer', ['height' => '16px'])
@component('emails.molecules.button', [ 'href' => $downloadUrl, 'variant' => 'primary', 'colors' => $colors ]) Download Tickets (PDF) @endcomponent
@include('emails.atoms.spacer', ['height' => '20px']) @endif @include('emails.atoms.spacer', ['height' => '4px']) @component('emails.atoms.h3', ['colors' => $colors]) Event Details @endcomponent @component('emails.organisms.card', ['colors' => $colors]) @component('emails.molecules.info-row', [ 'label' => 'Reference', 'value' => $orderNumber, 'colors' => $colors ]) @endcomponent @component('emails.molecules.info-row', [ 'label' => 'Guest Name', 'value' => $order->customer_name, 'colors' => $colors ]) @endcomponent @if($order->EventDetail) @component('emails.molecules.info-row', [ 'label' => 'Event', 'value' => $order->EventDetail->name, 'colors' => $colors ]) @endcomponent @if($order->EventDetail->venue_name) @component('emails.molecules.info-row', [ 'label' => 'Venue', 'value' => $order->EventDetail->venue_name, 'colors' => $colors ]) @endcomponent @endif @if($order->EventDetail->start_date) @php $datePart = \Carbon\Carbon::parse($order->EventDetail->start_date)->format('Y-m-d'); $timePart = $order->EventDetail->start_time ?? '00:00:00'; $eventDateTime = $datePart . ' ' . $timePart; @endphp @component('emails.molecules.info-row', [ 'label' => 'Date & Time', 'value' => \Carbon\Carbon::parse($eventDateTime)->format('l, F j, Y \a\t g:i A'), 'colors' => $colors, 'removeBorder' => true ]) @endcomponent @endif @endif @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) {{-- Seat Information --}} @php $tickets = $order->lineItems->where('item_type', 'ticket'); @endphp @if($tickets->count() > 0) @component('emails.atoms.h3', ['colors' => $colors]) Your Seats @endcomponent @component('emails.organisms.card', ['colors' => $colors]) @foreach($tickets as $index => $ticket) @component('emails.molecules.info-row', [ 'label' => 'Seat ' . ($index + 1), 'value' => $ticket->metadata['seat_number'] ?? $ticket->description ?? 'General Admission', 'colors' => $colors, 'removeBorder' => $loop->last ]) @endcomponent @endforeach @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @endif {{-- Embedded Tickets with QR Code or Barcode --}} @if($hasEmbeddedTickets) @php $codeType = $embeddedTickets[0]['code_type'] ?? 'qr'; $codeLabel = $codeType === 'barcode' ? 'barcodes' : 'QR codes'; @endphp @component('emails.atoms.h2', ['colors' => $colors]) Your Tickets @endcomponent @component('emails.atoms.text', ['colors' => $colors]) Present these {{ $codeLabel }} at the venue entrance. Save this email for offline access. @endcomponent @include('emails.atoms.spacer', ['height' => '16px']) @foreach($embeddedTickets as $ticket) @component('emails.organisms.card', ['colors' => $colors])
{{-- Ticket Header --}}

Seat {{ $ticket['seat_number'] }}

{{ $ticket['description'] }}

@component('emails.molecules.badge', [ 'variant' => 'success', 'colors' => $colors ]) GUEST @endcomponent
{{-- QR Code or Barcode Section --}}
@if($codeType === 'barcode') {{ $ticket['code_alt_text'] }}

Scan Barcode at Venue

@else {{ $ticket['code_alt_text'] }}

Scan at Venue Entrance

@endif

Ticket: {{ $ticket['ticket_number'] }}

@endcomponent @include('emails.atoms.spacer', ['height' => '16px']) @endforeach @component('emails.organisms.alert-box', [ 'variant' => 'info', 'title' => 'Pro Tip', 'colors' => $colors ]) Screenshot this email or save it offline before arriving at the venue. Venue wifi may be unreliable. @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @endif @component('emails.organisms.alert-box', [ 'variant' => 'info', 'title' => 'Important', 'colors' => $colors ]) Please keep this email as your ticket confirmation. Do not share your ticket codes with anyone. @endcomponent @include('emails.atoms.spacer', ['height' => '20px']) @component('emails.atoms.small', ['colors' => $colors]) Questions? Contact us at {{ $supportEmail }} @endcomponent {{-- Email Open Tracking Pixel --}} @if($trackingPixelUrl) @endif @endcomponent