- press-release-images-manager-v2 hinter IMAGE_RIGHTS_V2: drei Blöcke, Vorbelegung aus Metadaten, Bestätigung mit archiviertem Wortlaut, Bild-Bindung über Hash, Fokuspunkt und Letterbox, Zustände absent/prefilled/error - CustomerImageConfirmation: Magic-Link an den Kontoinhaber, Karte auf der Kundenseite, Kanal magic_link - PressReleaseImageRemover: nie veröffentlicht = alles sofort weg, veröffentlicht = Soft Delete, Original bleibt - ConversionSource::MailImageConfirmation Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
54 lines
1.8 KiB
PHP
54 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
/**
|
|
* Herkunft eines Konversionsereignisses (Roadmap Block 0).
|
|
*
|
|
* Der entscheidende Punkt: Der Wert wird auf dem MAGIC-LINK-TOKEN gespeichert,
|
|
* nicht in einer Session. Die zu messende Strecke führt über zwei Domains
|
|
* (presseecho.de → pressekonto.com), einen Mailclient und mögliche
|
|
* Weiterleitungen. Eine Session überlebt das nicht, ein Token schon. Ohne
|
|
* diesen Schritt wüsste man am Ende, dass jemand gebucht hat, aber nicht, ob er
|
|
* aus einer Ablehnungsmail kam — und genau das ist die Frage.
|
|
*/
|
|
enum ConversionSource: string
|
|
{
|
|
case MailPublish = 'mail_publish';
|
|
|
|
case MailReject = 'mail_reject';
|
|
|
|
/** Hinweis „ein Mensch prüft jetzt" nach erschöpfter Automatik (Roadmap 1d, E3). */
|
|
case MailReview = 'mail_review';
|
|
|
|
case ProfileClaim = 'profile_claim';
|
|
|
|
/** „Bild bestätigen" nach einem Admin-Upload (Bildkennzeichnung B.4, E10). */
|
|
case MailImageConfirmation = 'mail_image_confirmation';
|
|
|
|
case Organic = 'organic';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::MailPublish => 'Veröffentlichungsmail',
|
|
self::MailReject => 'Ablehnungsmail',
|
|
self::MailReview => 'Prüfhinweis-Mail',
|
|
self::ProfileClaim => 'Hinweis auf der Newsroom-Seite',
|
|
self::MailImageConfirmation => 'Mail „Bild bestätigen"',
|
|
self::Organic => 'ohne zugeordnete Herkunft',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Auflösung eines Werts aus einer URL oder einem Token.
|
|
*
|
|
* Unbekannte Werte werden zu `organic` statt zu einem Fehler: Der Parameter
|
|
* steht in fremder Hand (Mailclient, Weiterleitung, manuell getippt) und
|
|
* darf niemals einen Request scheitern lassen.
|
|
*/
|
|
public static function parse(?string $value): self
|
|
{
|
|
return self::tryFrom((string) $value) ?? self::Organic;
|
|
}
|
|
}
|