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

namespace Hafenstudios\Wellenbrecher\Support;

use Hafenstudios\Core\Support\SelfUpdater as CoreSelfUpdater;

defined( 'ABSPATH' ) || exit;

/**
 * Selbst-Update-Mechanik von Wellenbrecher.
 *
 * Die Mechanik selbst liegt seit dem Pro-Launch (25.07.2026) im Core, weil
 * Leadlotse und Kurato sie ebenfalls brauchen - Verhalten, Host-Bindung und
 * Fail-silent-Linie sind unveraendert, nur slug-basiert konfiguriert. Diese
 * Klasse bleibt als schmale Ableitung bestehen: sie haelt die bisherigen
 * Konstanten und den zweistelligen Konstruktor, damit die bestehenden Tests
 * (WB18) unveraendert weiterlaufen und die Gleichwertigkeit belegen.
 *
 * @see CoreSelfUpdater fuer die Sicherheitsauflagen (Host-Bindung, fail-silent).
 */
class SelfUpdater extends CoreSelfUpdater {

	/**
	 * Manifest-URL (eine statische JSON-Datei auf hafenstudios.com).
	 */
	public const MANIFEST_URL = 'https://hafenstudios.com/updates/wellenbrecher.json';

	/**
	 * Transient-Schluessel fuer das gecachte Manifest.
	 */
	public const TRANSIENT = 'wellenbrecher_update_manifest';

	/**
	 * @param string $plugin_basename   Plugin-Basename (z.B. wellenbrecher/wellenbrecher.php).
	 * @param string $installed_version Aktuell installierte Version.
	 */
	public function __construct( string $plugin_basename, string $installed_version ) {
		parent::__construct( 'wellenbrecher', $plugin_basename, $installed_version );
	}
}
