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

namespace Hafenstudios\Wellenbrecher\Rules;

use Hafenstudios\Wellenbrecher\Engine\Context;
use Hafenstudios\Wellenbrecher\Engine\RuleResult;

defined( 'ABSPATH' ) || exit;

/**
 * Trust-Abzug: verifizierter WooCommerce-Kaeufer bei einer Produkt-Review.
 * Gilt nur im Kanal woo_review; das Flag setzt der Kanal-Adapter (W4).
 */
class TrustVerifiedBuyerRule extends AbstractRule {

	public const ID             = 'trust_verified_buyer';
	public const DEFAULT_POINTS = -20;

	public function __construct( int $points = self::DEFAULT_POINTS ) {
		parent::__construct( $points );
	}

	public function id(): string {
		return self::ID;
	}

	public function stage(): int {
		return 0;
	}

	public function applies( Context $context ): bool {
		return 'woo_review' === $context->channel;
	}

	public function evaluate( Context $context ): RuleResult {
		return $context->user_flag( 'is_verified_buyer' ) ? $this->hit() : $this->miss();
	}
}
