*/ public function via(object $notifiable): array { return ['mail']; } /** * Get the mail representation of the notification. */ public function toMail(object $notifiable): MailMessage { $locale = $notifiable->preferred_language ?? 'ar'; return (new MailMessage) ->subject($this->getSubject($locale)) ->view('emails.reminder-24h', [ 'consultation' => $this->consultation, 'locale' => $locale, 'user' => $notifiable, 'showPaymentReminder' => $this->shouldShowPaymentReminder(), ]); } /** * Get the subject based on locale. */ private function getSubject(string $locale): string { return $locale === 'ar' ? 'تذكير: موعدك غداً مع مكتب ليبرا للمحاماة' : 'Reminder: Your consultation is tomorrow'; } /** * Check if payment reminder should be shown. */ private function shouldShowPaymentReminder(): bool { return $this->consultation->consultation_type->value === 'paid' && $this->consultation->payment_status->value === 'pending'; } /** * Get the array representation of the notification. * * @return array */ public function toArray(object $notifiable): array { return [ 'type' => 'consultation_reminder_24h', 'consultation_id' => $this->consultation->id, ]; } }