diff --git a/backend/resources/views/vendor/mail/html/message.blade.php b/backend/resources/views/vendor/mail/html/message.blade.php index 737c8aa3e3..16484c99f8 100644 --- a/backend/resources/views/vendor/mail/html/message.blade.php +++ b/backend/resources/views/vendor/mail/html/message.blade.php @@ -1,13 +1,56 @@ {{-- Header --}} - - @if($appLogo = config('app.email_logo_url')) - +@php + $logoPath = null; + $organizerName = null; + $organizerId = null; + + // 1. Resolve organizer ID from active variables or fallback request contexts + if (isset($event) && $event->organizer) { + $organizerId = $event->organizer->id; + $organizerName = $event->organizer->name; + } elseif (isset($order) && $order->event && $order->event->organizer) { + $organizerId = $order->event->organizer->id; + $organizerName = $order->event->organizer->name; + } else { + $eventId = request()->route('event_id') ?? request()->input('event_id') ?? ($order->event_id ?? null); + if ($eventId) { + $dbEvent = \DB::table('events')->where('id', $eventId)->first(); + if ($dbEvent) { + $organizerId = $dbEvent->organizer_id; + } + } + } + + // 2. Fetch the true asset path from the custom images ledger if an organizer was resolved + if ($organizerId) { + if (!$organizerName) { + $dbOrg = \DB::table('organizers')->where('id', $organizerId)->first(); + $organizerName = $dbOrg->name ?? null; + } + + $dbImage = \DB::table('images') + ->where('entity_id', $organizerId) + ->where('entity_type', 'HiEvents\DomainObjects\OrganizerDomainObject') + ->first(); + + if ($dbImage) { + $logoPath = $dbImage->path; + } + } + @endphp + + + @if($logoPath) + {{-- Render the true dynamic tenant organizer logo asset link --}} + + @elseif($appLogo = config('app.email_logo_url')) + {{-- Fallback to global setting --}} + @else - + {{-- Clean fallback typography --}} +

{{ $organizerName ?? env('VITE_APP_NAME', 'Hi.Events') }}

@endif
diff --git a/docker/all-in-one/docker-compose.yml b/docker/all-in-one/docker-compose.yml index 28f912c617..747f747910 100644 --- a/docker/all-in-one/docker-compose.yml +++ b/docker/all-in-one/docker-compose.yml @@ -43,7 +43,8 @@ services: - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET} - WEBHOOK_QUEUE_NAME=webhook-queue - + volumes: + - appdata:/app/backend/storage depends_on: postgres: condition: service_healthy @@ -79,3 +80,4 @@ services: volumes: pgdata: redisdata: + appdata: