<?php
/**
 * @package Hafenstudios\Kurato
 */

namespace Hafenstudios\Kurato\Mail;

use Hafenstudios\Core\Mail\Message;

defined( 'ABSPATH' ) || exit;

/**
 * Baut aus einer Queue-Zeile die fertige, personalisierte Nachricht.
 *
 * Trennt die Queue-Mechanik (K4b) von der Mail-Erzeugung (K4c: Kampagne laden,
 * Blocks rendern, Platzhalter ersetzen, Abmeldelink anhaengen). Liefert null,
 * wenn die Zeile nicht versendet werden soll (z.B. Kampagne abgebrochen,
 * Adresse supprimiert).
 */
interface MailBuilder {

	/**
	 * @param array<string, mixed> $queue_row Zeile aus hs_mail_queue.
	 * @return Message|null
	 */
	public function build( array $queue_row ): ?Message;
}
