<?php
	/**
	 * @package     Freemius
	 * @copyright   Copyright (c) 2015, Freemius, Inc.
	 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
	 * @since       1.0.6
	 */

	if ( ! defined( 'ABSPATH' ) ) {
		exit;
	}

	class FS_License_Manager /*extends FS_Abstract_Manager*/
	{
//
//
//		/**
//		 * @var FS_License_Manager[]
//		 */
//		private static $_instances = array();
//
//		static function instance( Freemius $fs ) {
//			$slug = strtolower( $fs->get_slug() );
//
//			if ( ! isset( self::$_instances[ $slug ] ) ) {
//				self::$_instances[ $slug ] = new FS_License_Manager( $slug, $fs );
//			}
//
//			return self::$_instances[ $slug ];
//		}
//
////		private function __construct($slug) {
////			parent::__construct($slug);
////		}
//
//		function entry_id() {
//			return 'licenses';
//		}
//
//		function sync( $id ) {
//
//		}
//
//		/**
//		 * @author Vova Feldman (@svovaf)
//		 * @since  1.0.5
//		 * @uses   FS_Api
//		 *
//		 * @param number|bool $plugin_id
//		 *
//		 * @return FS_Plugin_License[]|stdClass Licenses or API error.
//		 */
//		function api_get_user_plugin_licenses( $plugin_id = false ) {
//			$api = $this->_fs->get_api_user_scope();
//
//			if ( ! is_numeric( $plugin_id ) ) {
//				$plugin_id = $this->_fs->get_id();
//			}
//
//			$result = $api->call( "/plugins/{$plugin_id}/licenses.json" );
//
//			if ( ! isset( $result->error ) ) {
//				for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) {
//					$result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] );
//				}
//
//				$result = $result->licenses;
//			}
//
//			return $result;
//		}
//
//		function api_get_many() {
//
//		}
//
//		function api_activate( $id ) {
//
//		}
//
//		function api_deactivate( $id ) {
//
//		}

		/**
		 * @param FS_Plugin_License[] $licenses
		 *
		 * @return bool
		 */
		static function has_premium_license( $licenses ) {
			if ( is_array( $licenses ) ) {
				foreach ( $licenses as $license ) {
					if ( ! $license->is_utilized() && $license->is_features_enabled() ) {
						return true;
					}
				}
			}

			return false;
		}
	}