*/ 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'; $message = (new MailMessage) ->subject($this->getSubject($locale)) ->view('emails.consultation-rescheduled', [ 'consultation' => $this->consultation, 'oldDate' => $this->oldDate, 'oldTime' => $this->oldTime, 'locale' => $locale, 'user' => $notifiable, ]); // Attach new .ics file if (! empty($this->icsContent)) { $message->attachData( $this->icsContent, 'consultation.ics', ['mime' => 'text/calendar'] ); } return $message; } /** * Get the subject based on locale. */ private function getSubject(string $locale): string { return $locale === 'ar' ? 'تم إعادة جدولة موعد استشارتك' : 'Your Consultation Has Been Rescheduled'; } /** * Get the array representation of the notification. * * @return array */ public function toArray(object $notifiable): array { return [ 'type' => 'consultation_rescheduled', 'consultation_id' => $this->consultation->id, 'old_date' => $this->oldDate->toDateString(), 'old_time' => $this->oldTime, ]; } }