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

namespace Hafenstudios\Core\Mail;

defined( 'ABSPATH' ) || exit;

/**
 * Vertrag fuer Versandtreiber.
 *
 * In Phase 1 gibt es zwei Treiber (wp_mail, SMTP). ESP-Treiber (Brevo, SES,
 * Postmark) implementieren dieselbe Schnittstelle und werden erst mit Kurato in
 * Phase 2 ausgeliefert. Das Interface ist der Pro-/Kurato-Erweiterungspunkt.
 */
interface MailDriver {

	/**
	 * Versendet eine Nachricht.
	 *
	 * @param Message $message Die Nachricht.
	 * @return bool Erfolg.
	 */
	public function send( Message $message ): bool;

	/**
	 * Eindeutiger Treiber-Schluessel, z.B. "wp_mail" oder "smtp".
	 *
	 * @return string
	 */
	public function key(): string;
}
