/**
 * Is Pro
 * Pro版プラグインの有効判定ユーティリティ
 */

/**
 * Pro版が有効かチェック
 * zenblocks-pro プラグインが有効化されているかを判定。
 * zenblocks-pro 側でライセンス検証を行い、zenblocks_license_data フィルターで
 * isPro を上書きする設計。
 * @return {boolean}
 */
export function isPro() {
	return window.zenBlocks?.license?.isPro || false;
}

/**
 * Plus版が有効かチェック
 * zenblocks-plus プラグインが有効化されているかを判定。
 * @return {boolean}
 */
export function isPlus() {
	return window.zenBlocks?.license?.isPlus || false;
}

/**
 * ライセンスステータスを取得
 * zenblocks-pro が zenblocks_license_data フィルターで status を渡す。
 * @return {string} 'active' | 'expired' | 'inactive'
 */
export function getLicenseStatus() {
	return window.zenBlocks?.license?.status || 'inactive';
}

/**
 * ライセンスが有効期限内かチェック
 * @return {boolean}
 */
export function isLicenseActive() {
	return getLicenseStatus() === 'active';
}

/**
 * Pro機能が利用可能かチェック
 * Pro版プラグインが有効で、ライセンスがアクティブな場合のみtrue。
 * ライセンス情報が無い場合（Pro版が is_plugin_active のみで isPro=true の場合）は
 * isPro() だけで判定する。
 * @return {boolean}
 */
export function isProFeatureAvailable() {
	if ( ! isPro() ) {
		return false;
	}
	const status = getLicenseStatus();
	// If Pro plugin doesn't provide status via filter, default to available.
	if ( status === 'inactive' && ! window.zenBlocks?.license?.status ) {
		return true;
	}
	return status === 'active';
}

export default {
	isPro,
	isPlus,
	getLicenseStatus,
	isLicenseActive,
	isProFeatureAvailable,
};
