<?php
/**
 * Pro 判定の中核。
 *
 * 無料版とPro版の境界をここに集約する。
 * Pro版（別プラグイン）は `wcjbp_is_pro` フィルタを true に差し替えるだけで
 * 機能が解放される設計とし、無料版コードに Pro 実装を一切混在させない。
 *
 * @package Neutrope_Japanese_Invoice_PDFs_For_WooCommerce
 */

defined( 'ABSPATH' ) || exit;

/**
 * Class WCJBP_Pro_Gate
 */
class WCJBP_Pro_Gate {

	/**
	 * Pro版が有効かどうか。
	 *
	 * 無料版では常に false。Pro版が `wcjbp_is_pro` フィルタで true を返す。
	 *
	 * @return bool
	 */
	public static function is_pro() {
		return (bool) apply_filters( 'wcjbp_is_pro', false );
	}

	/**
	 * 出力可能な帳票タイプの一覧。
	 *
	 * 無料版は請求書のみ。Pro版は `wcjbp_document_types` フィルタで
	 * 'receipt'（領収書）などを追加する。
	 *
	 * @return array<string,string> key => ラベル
	 */
	public static function document_types() {
		$types = array(
			'invoice' => __( '請求書', 'neutrope-japanese-invoice-pdfs-for-woocommerce' ),
		);

		/**
		 * 出力可能な帳票タイプをフィルタする。
		 *
		 * @param array<string,string> $types 帳票タイプの連想配列。
		 */
		$types = apply_filters( 'wcjbp_document_types', $types );

		// 無料版では Pro 限定タイプを強制的に除去（多重防御）。
		if ( ! self::is_pro() ) {
			$types = array(
				'invoice' => isset( $types['invoice'] )
					? $types['invoice']
					: __( '請求書', 'neutrope-japanese-invoice-pdfs-for-woocommerce' ),
			);
		}

		return $types;
	}

	/**
	 * 指定タイプの帳票を出力できるか。
	 *
	 * @param string $type 帳票タイプ。
	 * @return bool
	 */
	public static function can_generate( $type ) {
		return array_key_exists( $type, self::document_types() );
	}
}
