internship = $internship; $this->changedByName = $changedByName; $this->studentName = $studentName; $this->companyName = $companyName; $this->oldStatus = $oldStatus; $this->newStatus = $newStatus; $this->note = $note; } /** * Get the message envelope. */ public function envelope(): Envelope { return new Envelope( subject: 'Internship Status Updated', ); } /** * Get the message content definition. */ public function content(): Content { return new Content( view: 'mail.internship.status_updated', with: [ "internship" => $this->internship, "changedByName" => $this->changedByName, "studentName" => $this->studentName, "companyName" => $this->companyName, "oldStatus" => $this->prettyStatus($this->oldStatus->value), "newStatus" => $this->prettyStatus($this->newStatus->value), "note" => $this->note, ] ); } /** * Get the attachments for the message. * * @return array */ public function attachments(): array { return []; } private function prettyStatus(string $status): string { return match ($status) { 'SUBMITTED' => 'Zadané', 'CONFIRMED_BY_COMPANY' => 'Potvrdená firmou', 'CONFIRMED_BY_ADMIN' => 'Potvrdená garantom', 'DENIED_BY_COMPANY' => 'Zamietnutá firmou', 'DENIED_BY_ADMIN' => 'Zamietnutá garantom', 'DEFENDED' => 'Obhájená', 'NOT_DEFENDED' => 'Neobhájená', default => throw new \Exception("Invalid status: $status") }; } }