<?php
/**
 * SureDonation Cover Fees Markup Class.
 *
 * @package SureDonation
 * @since 0.0.1
 */

namespace SureDonation\Inc\Fields;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

use SureDonation\Inc\Helper;

/**
 * Cover Fees Markup Class.
 *
 * @since 0.0.1
 */
class Cover_Fees_Markup extends Base {
	/**
	 * Fee percentage (e.g., 2.9 for Stripe).
	 *
	 * @var float
	 */
	protected $fee_percentage;

	/**
	 * Fixed fee amount (e.g., 0.30 for Stripe).
	 *
	 * @var float
	 */
	protected $fee_fixed;

	/**
	 * Initialize the properties based on block attributes.
	 *
	 * @param array<string, mixed> $attributes Block attributes.
	 * @since 0.0.1
	 */
	public function __construct( $attributes ) {
		$this->slug = 'cover-fees';

		$this->fee_percentage = Helper::get_float_value( $attributes['feePercentage'] ?? 2.9 );
		$this->fee_fixed      = Helper::get_float_value( $attributes['feeFixed'] ?? 0.30 );

		$this->set_properties( $attributes );
		$this->set_unique_slug();
		$this->set_markup_properties();
	}

	/**
	 * Render cover fees checkbox markup
	 *
	 * @since 0.0.1
	 * @return string
	 */
	public function markup() {
		$classes   = $this->get_field_classes();
		$aria_desc = $this->get_aria_describedby();

		ob_start();
		?>
		<div data-block-id="<?php echo esc_attr( $this->block_id ); ?>" class="<?php echo esc_attr( $classes ); ?>">
			<div class="sd-block-wrap sd-checkbox-wrap sd-cover-fees-wrap">
				<label class="sd-checkbox-label" for="<?php echo esc_attr( $this->unique_slug ); ?>">
					<input
						class="sd-input-checkbox sd-cover-fees-input"
						type="checkbox"
						name="<?php echo esc_attr( $this->field_name ); ?>"
						id="<?php echo esc_attr( $this->unique_slug ); ?>"
						value="1"
						data-fee-percentage="<?php echo esc_attr( Helper::get_string_value( $this->fee_percentage ) ); ?>"
						data-fee-fixed="<?php echo esc_attr( Helper::get_string_value( $this->fee_fixed ) ); ?>"
						<?php if ( ! empty( $aria_desc ) ) { ?>
							aria-describedby="<?php echo esc_attr( $aria_desc ); ?>"
						<?php } ?>
						<?php echo esc_attr( $this->checked_attr ); ?>
					/>
					<span class="sd-checkbox-text">
						<?php echo wp_kses_post( $this->label ); ?>
						<span class="sd-cover-fees-amount"></span>
					</span>
				</label>
			</div>
			<?php echo wp_kses_post( $this->help_markup ); ?>
		</div>
		<?php
		return (string) ob_get_clean();
	}
}
