mivita/app/Mail/CustomerEmailChangeMail.php
Kevin Adametz 9ad69a3218 Kundenhoheit: E-Mail-Aenderung mit Bestaetigung, Zuordnungsfehler behoben, Admin-Uebersicht
- E-Mail-Aenderung durch Berater wird erst nach Bestaetigung durch den Kunden
  aktiv (Link an die neue Adresse, Portal kunde/email-bestaetigen); danach
  ziehen alle Eintraege des Kunden und seine Abos mit. Admins aendern direkt.
- Kundenhoheit: E-Mail eines Beraterkontos oder eines Kunden eines anderen
  Beraters wird abgelehnt (beim Speichern und bei der Bestaetigung).
- Fix CustomerPriority::entryExists: aelteste gepruefte Zuordnung gilt,
  Eintraege in Pruefung (is_like) dienen nicht mehr als Vorlage.
- "Berater zuweisen" voreingestellt auf alle Bestellungen des Kunden.
- Neue Admin-Seite Kundenhoheit: offene Pruefungen, Kunden bei mehreren
  Beratern, abgelehnte/offene E-Mail-Aenderungen; Zaehler im Menue.
- Neue Tabelle shopping_user_email_changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 08:48:17 +00:00

36 lines
1.1 KiB
PHP

<?php
namespace App\Mail;
use App\Models\ShoppingUser;
use App\Services\Util;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class CustomerEmailChangeMail extends Mailable
{
use Queueable, SerializesModels;
public function __construct(public ShoppingUser $shoppingUser, public string $token) {}
public function build(): self
{
$firstname = $this->shoppingUser->billing_firstname;
$salutation = $firstname ? __('email.hello').' '.$firstname : __('email.hello');
// Link zeigt immer auf das Kundenportal (in.mivita.care), unabhängig vom Versand-Kontext.
$link = rtrim(Util::getMyMivitaPortalUrl(), '/').'/kunde/email-bestaetigen/'.$this->token;
$subject = __('customer.email_change_mail_subject');
return $this->subject($subject)
->view('emails.customer_email_change')
->with([
'salutation' => $salutation,
'link' => $link,
'mailTitle' => $subject,
'greetings' => __('email.greetings'),
'sender' => __('email.sender'),
]);
}
}