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

namespace Hafenstudios\Wellenbrecher\Admin;

use Hafenstudios\Core\Settings\Settings;
use Hafenstudios\Wellenbrecher\Db\StatsRepository;
use Hafenstudios\Wellenbrecher\Support\ObservationMode;

defined( 'ABSPATH' ) || exit;

/**
 * Das Beobachtungsmodus-Banner (W2, Bauplan Kap. 6/8), an einer Stelle, damit
 * Einstellungen UND Uebersicht denselben Hinweis samt Scharfschalten-Knopf
 * zeigen. Gibt nichts aus, wenn der Modus nicht (mehr) aktiv ist.
 *
 * Das Scharfschalten laeuft ueber den admin-post-Handler der SettingsPage
 * (ACTION_ARM); von welcher Seite aus geklickt wird, spielt keine Rolle.
 */
final class ObservationNotice {

	/**
	 * Rendert das aktive Banner (Info-Notice mit Restlaufzeit + bisher markierte
	 * Zahl + Scharfschalten-Formular). Leer, wenn der Modus nicht aktiv ist.
	 *
	 * @param Settings        $settings    Wellenbrecher-Settings.
	 * @param StatsRepository $stats       Tageszaehler.
	 * @param ObservationMode $observation Beobachtungsmodus.
	 * @return void
	 */
	public static function render( Settings $settings, StatsRepository $stats, ObservationMode $observation ): void {
		if ( ! $observation->is_active() ) {
			return;
		}

		$days    = $observation->remaining_days();
		$window  = max( 1, (int) $settings->get( 'observation.days', 7 ) );
		$summary = $stats->summary( $window );
		$flagged = (int) ( $summary['totals']['flagged'] ?? 0 );

		echo '<div class="notice notice-info inline"><p>';
		printf(
			/* translators: 1: verbleibende Tage, 2: Anzahl markierter Vorgaenge */
			esc_html__( 'Wellenbrecher beobachtet noch %1$d Tag(e): Auffaellige Vorgaenge werden nur markiert und geloggt, nichts wird blockiert. Bisher markiert: %2$d. Pruefen Sie das Block-Log und schalten Sie dann scharf.', 'wellenbrecher' ),
			(int) $days,
			(int) $flagged
		);
		echo '</p><p>';

		echo '<form method="post" action="' . esc_url( admin_url( 'admin-post.php' ) ) . '" style="display:inline">';
		echo '<input type="hidden" name="action" value="' . esc_attr( SettingsPage::ACTION_ARM ) . '" />';
		wp_nonce_field( SettingsPage::ACTION_ARM );
		echo '<button type="submit" class="button button-primary">' . esc_html__( 'Jetzt scharf schalten', 'wellenbrecher' ) . '</button>';
		echo '</form>';

		echo '</p></div>';
	}
}
