/**
 * License System
 * ライセンス情報の読み取りユーティリティ。
 * ライセンス管理（認証・更新・失効処理）は zenblocks-pro で行う。
 * zenblocks-pro は zenblocks_license_data フィルターで isPro / status / expiresAt を渡す。
 */

/**
 * ライセンス情報を取得
 * @return {Object} ライセンス情報
 */
export function getLicenseInfo() {
	return (
		window.zenBlocks?.license || {
			isPro: false,
			status: 'inactive',
			expiresAt: null,
		}
	);
}

/**
 * Pro機能が利用可能かチェック
 * @return {boolean}
 */
export function isProFeatureAvailable() {
	const license = getLicenseInfo();
	return license.isPro === true;
}

/**
 * ライセンス有効期限のチェック
 * @return {boolean}
 */
export function isLicenseExpired() {
	const license = getLicenseInfo();
	if ( ! license.expiresAt ) {
		return false;
	}

	const expiryDate = new Date( license.expiresAt );
	const now = new Date();
	return now > expiryDate;
}

/**
 * ライセンス期限切れまでの日数
 * @return {number|null}
 */
export function getDaysUntilExpiry() {
	const license = getLicenseInfo();
	if ( ! license.expiresAt ) {
		return null;
	}

	const expiryDate = new Date( license.expiresAt );
	const now = new Date();
	const diffTime = expiryDate - now;
	const diffDays = Math.ceil( diffTime / ( 1000 * 60 * 60 * 24 ) );

	return diffDays;
}

export default {
	getLicenseInfo,
	isProFeatureAvailable,
	isLicenseExpired,
	getDaysUntilExpiry,
};
