ticket; if ($message->user) { $ticket->load('user'); /** @var \App\Models\User $messageUser */ $messageUser = $message->user; // * Send mail to mentionned users $usersNotified = $ticket->sendBeenMentionnedToUser($message); // * If email has not been sen to ticket author yet. if (!$usersNotified->contains($ticket->user) and $ticket->user->id !== $messageUser->id) { // * Send mail to ticket author event(new NotifyTicketCreator( $ticket, trans('Nouvelle réponse de :name :
:message sur votre ticket', [ 'name' => $messageUser->name, 'message' => $message->message ]) )); $usersNotified->push($ticket->user); } // ? Is message author is admin ? if ($messageUser->isAdmin()) { $ticket->subscriptions()->attach($messageUser); \session()->flash('info', trans('Vous avez été inscrit.')); } // * Send mail to other subscribed users event(new NotifySubscriptions( $message->ticket, trans('Nouvelle réponse de :name :
:message', [ 'name' => $message->user->name, 'message' => $message->message ]), $usersNotified )); // } }); } public function ticket() { return $this->belongsTo(Ticket::class, 'ticket_id'); } public function user() { return $this->belongsTo(User::class, 'user_id'); } public function saveFile(Site $site, Ticket $ticket, UploadedFile $file) { $siteAssetFullPath = Site::ticketAssetsFullPath($site->slug_name); $fileAssetPath = Site::ticketAssetsPath($site->slug_name); $fileName = sprintf( '%s-%s-%d-%d.%s', $site->slug_name, $ticket->id, rand(), $file->extension() ); $file->move(sprintf('%s/messages/%d', $siteAssetFullPath, $ticket->id), $fileName); return sprintf('%s/%d/%s', $fileAssetPath, $ticket->id, $fileName); } }