<?php
if ( ! defined( 'ABSPATH' ) ) { exit; }

/**
 * KNSDD_License Class
 *
 * Free-only dagitimda ozellik erisimini yoneten sabit katman.
 */
class KNSDD_License {

	/**
	 * Grup limiti (free).
	 *
	 * @return int
	 */
	public static function get_max_groups() {
		return 1;
	}

	/**
	 * Grup basina kural limiti (free).
	 *
	 * @return int
	 */
	public static function get_max_rules_per_group() {
		return 3;
	}

	/**
	 * Grup limiti kontrolu.
	 *
	 * @return array
	 */
	public static function check_group_limit() {
		$groups  = KNSDD_Data::get_groups();
		$current = count( $groups );
		$max     = self::get_max_groups();

		return array(
			'allowed' => $current < $max,
			'current' => $current,
			'max'     => $max,
			'message' => sprintf(
				__( 'Ücretsiz versiyonda maksimum %d grup oluşturabilirsiniz. Daha fazla grup için Pro sürüme geçin.', 'kns-dynamic-discounts-for-woocommerce' ),
				$max
			),
		);
	}

	/**
	 * Kural limiti kontrolu.
	 *
	 * @param string $group_name Grup adi.
	 * @return array
	 */
	public static function check_rules_limit( $group_name ) {
		$rules   = KNSDD_Data::get_rules_for_group( $group_name );
		$current = count( $rules );
		$max     = self::get_max_rules_per_group();

		return array(
			'allowed' => $current < $max,
			'current' => $current,
			'max'     => $max,
			'message' => sprintf(
				__( 'Ücretsiz versiyonda grup başına maksimum %d kural oluşturabilirsiniz. Daha fazla kural için Pro sürüme geçin.', 'kns-dynamic-discounts-for-woocommerce' ),
				$max
			),
		);
	}

	/**
	 * Sabit upgrade URL.
	 *
	 * @param string $source Kaynak bilgisi.
	 * @return string
	 */
	public static function get_upgrade_url( $source = 'admin' ) {
		if ( function_exists( 'knsdd_fs' ) ) {
			$fs = knsdd_fs();
			if ( is_object( $fs ) && method_exists( $fs, 'get_upgrade_url' ) ) {
				return $fs->get_upgrade_url( $source );
			}
		}

		$base = defined( 'KNSDD_PRO_UPGRADE_URL' ) ? KNSDD_PRO_UPGRADE_URL : 'https://knsapp.com/kns-dynamic-discounts/';
		if ( function_exists( 'add_query_arg' ) ) {
			return add_query_arg(
				array(
					'utm_source'   => 'knsdd-free',
					'utm_medium'   => 'wp-admin',
					'utm_campaign' => sanitize_key( (string) $source ),
				),
				$base
			);
		}
		return $base;
	}

	/**
	 * Pro badge.
	 *
	 * @return string
	 */
	public static function pro_badge() {
		return '<span class="knsdd-pro-badge" style="background: #ff6b6b; color: #fff; padding: 2px 8px; border-radius: 3px; font-size: 11px; margin-left: 6px; font-weight: 600;">PRO</span>';
	}

}
