<?php
/**
 * Reviews Feed Saver
 *
 * @since 1.0
 */

namespace SmashBalloon\Reviews\Common\Admin;

use Smashballoon\Customizer\V2\Support_Builder;
use SmashBalloon\Reviews\Common\Builder\Config\Proxy;
use SmashBalloon\Reviews\Common\Customizer\DB;
use SmashBalloon\Reviews\Common\Util;

class SBR_Support_Builder extends Support_Builder
{

    protected $config_proxy;

    /**
     *  MEnu Slug
     * @since 1.0
     */
    protected $builder_menu_slug;
    protected $current_plugin;
    protected $add_to_menu;

    protected $menu;

    public function __construct(Proxy $config_proxy)
    {
        $this->menu = [
            'parent_menu_slug' => "sbr",
            'page_title' => "Support",
            'menu_title' => "Support",
            'menu_slug' => "sbr-support",
        ];
        $this->config_proxy = $config_proxy;
        $this->builder_menu_slug = SBR_CUSTOMIZER_MENU_SLUG;
        $this->add_to_menu = ! Util::sbr_is_pro() ? true : check_license_valid();
    }

    public function custom_support_data()
    {
        $aboutus_data = [
            'nonce' => wp_create_nonce('sbr-admin'),
            'assetsURL' => SB_COMMON_ASSETS,
            'feedsList' => DB::get_feeds_list(),
            'supportContent' => $this->get_support_content(),
            'supportInfo' => $this->get_support_info(),
            'isPro' => Util::sbr_is_pro(),
            'aboutPageUrl' => admin_url('admin.php?page=sbr-about'),
            'collectionsPageUrl' => admin_url('admin.php?page=sbr-collections'),
            'adminNoticeContent' => apply_filters('sbr_admin_notices_filter', 1),
			'tempUser' => \SmashBalloon\Reviews\Common\Admin\SBR_Support_Tool::check_temporary_user_exists(),
            'builderUrl'           => admin_url( 'admin.php?page=sbr')
        ];

        return $aboutus_data;
    }


    public function get_support_content(){
        $utm_source = Util::sbr_is_pro() ? 'reviews-pro' : 'reviews-free';
	    return [
		    [
			    'heading'       => __('Getting Started', 'reviews-feed'),
			    'description'   => __( 'Some helpful resources to get you started', 'reviews-feed' ),
			    'icon'          => 'rocketicon',
			    'content'       => [
				    [
					    'text' => __('Getting Started with Reviews Feed', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/docs/getting-started/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Create a Feed'
				    ],
				    [
					    'text' => __('How to Create a Yelp API Key', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/creating-a-yelp-api-key/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Yelp API Key'
				    ],
				    [
					    'text' => __('How to Create a Google API Key', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/creating-a-google-api-key/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Google API Key'
				    ],
			    ],
			    'button' => [
				    'text' => __('More help on Getting started', 'reviews-feed'),
				    'link' => 'https://smashballoon.com/docs/getting-started/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Getting Started'
			    ]
		    ],
		    [
			    'heading' => __('Docs & Troubleshooting', 'reviews-feed'),
			    'description' => __('Run into an issue? Check out our help docs.', 'reviews-feed'),
			    'icon' => 'bookopen',
			    'content' => [
				    [
					    'text' => __('Why do I only see a few reviews?', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/why-do-i-only-see-a-few-reviews/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=GDPR Compliance'
				    ],
				    [
					    'text' => __('How to Resolve Error Messages', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/reviews-feed-error-message-reference/?reviews&utm_campaign=' . $utm_source . '&utm_source=front-end-error&utm_medium=no-posts-found&utm_content=ErrorMessageReference'
				    ],
				    [
					    'text' => __('Translating Google Reviews', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/language-reviews-feed/?reviews&utm_campaign=' . $utm_source . '&utm_source=support&utm_medium=help-docs-language&utm_content=Translating'
				    ],
			    ],
			    'button' => [
				    'text' => __('View Documentation', 'reviews-feed'),
				    'link' => 'https://smashballoon.com/docs/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=View Documentation'
			    ]
		    ],
		    [
			    'heading' => __('Additional Resources', 'reviews-feed'),
			    'description' => __('To help you get the most out of the plugin', 'reviews-feed'),
			    'icon' => 'bookplus',
			    'content' => [
				    [
					    'text' => __('Can I Display Multiple Reviews on One Page?', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/can-i-display-multiple-reviews-feeds-on-my-site-or-on-the-same-page/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Google API Key'
				    ],
				    [
					    'text' => __('License Tiers Explained (additional review providers)', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/docs/license-tiers-explained/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=License Tiers Explained'
				    ],
				    [
					    'text' => __('How do I Embed My Feed Directly in a Template?', 'reviews-feed'),
					    'link' => 'https://smashballoon.com/doc/how-do-i-embed-the-reviews-feed-directly-into-a-theme-template/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=Embed in Template'
				    ],
			    ],
			    'button' => [
				    'text' => __('View Blog', 'reviews-feed'),
				    'link' => 'https://smashballoon.com/blog/?reviews&utm_campaign=' .  $utm_source . '&utm_source=support&utm_medium=docs&utm_content=View Blog'
			    ]
		    ]
	    ];
    }



    public function get_support_info(){
        $output = '';
        // Build the output strings
        $output .= Util::get_site_n_server_info();
        $output .= Util::get_active_plugins_info();
        $output .= Util::get_global_settings_info();
        $output .= Util::get_sources_settings_info();
        $output .= Util::get_api_settings_info();
        $output .= Util::get_feeds_settings_info();
        $output .= Util::get_posts_table_info();

        return $output;
    }
}
