Files
myep/src/Model/NewsletterSubscriptionRequestResult.php
T

37 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Model;
class NewsletterSubscriptionRequestResult
{
public const STATE_SUBSCRIBED = 'subscribed';
public const STATE_PENDING_CONFIRMATION = 'pending_confirmation';
public const STATE_CONFIRMATION_REQUESTED = 'confirmation_requested';
public const LIST_STATE_PENDING = 'pending';
public const LIST_STATE_ALREADY_REGISTERED = 'already_registered';
public const LIST_STATE_SUCCESS = 'success';
/**
* @param list<int> $listIds
* @param array<int, string> $listStates
*/
public function __construct(
public readonly string $email,
public readonly array $listIds,
public readonly string $state,
public readonly bool $confirmationRequested,
public readonly array $listStates = [],
) {
}
public function stateForList(int $listId): string
{
return $this->listStates[$listId] ?? match ($this->state) {
self::STATE_SUBSCRIBED => self::LIST_STATE_SUCCESS,
default => self::LIST_STATE_PENDING,
};
}
}