<?php

namespace CleantalkSP\SpbctWP\AdminBannersModule\AdminBanners;

use CleantalkSP\SpbctWP\AdminBannersModule\AdminBannersHandler;
use CleantalkSP\SpbctWP\LinkConstructor;
use CleantalkSP\Variables\Get;

class AdminBannerTrialAndRenew extends AdminBannerAbstract
{
    /**
     * Hiding time in days
     */
    const HIDING_TIME = 14;

    /**
     * Simple Banner Name, most be unique
     */
    const NAME = 'trial';

    /**
     * Data for template
     *
     * @var array $template_data
     */
    private $template_data;

    /**
     * @var AdminBannersHandler
     */
    private $banners_handler;

    /**
     * Is the current page is a spbc plugin settings page
     *
     * @var bool
     */
    private $is_settings_page;

    public function __construct(AdminBannersHandler $banners_handler)
    {
        global $spbc;

        $this->banners_handler   = $banners_handler;
        $this->banner_id         = $this->prefix . $this::NAME . '_' . $this->banners_handler->getUserId();
        $renewal_link = linkConstructor::buildRenewalLink(
            $banners_handler->getUserToken() ?: '',
            4,
            'renew_notice_trial'
        );

        $this->template_data = array(
            'renewal_link' => $renewal_link,
            'plugin_settings_link' => $this->banners_handler->getPluginSettingsLink(),
            'title_main' => __(
                'Please upgrade your license to keep your site secure and protected!',
                'security-malware-firewall'
            ),
            'title_numbers' => sprintf(
                __('Trusted by %s sites | %s attacks blocked | %s brute-force prevented', 'security-malware-firewall'),
                '1,078,000+',
                '10.5M+',
                '1.4M+'
            ),
            'title_upd' => sprintf(
                __('Account status updates every hour or click Settings → %s → Synchronize with Cloud', 'security-malware-firewall'),
                $spbc->data["wl_brandname"]
            ),
            'btn_upgrade' => esc_html__('UPGRADE NOW', 'security-malware-firewall'),
        );

        $this->is_settings_page = Get::getString('page') === 'spbc';
    }

    /**
     * do I need to show a banner?
     *
     * @return bool
     */
    protected function needToShow()
    {
        if (
            $this->banners_handler->spbc->notice_show &&
            (
                $this->banners_handler->spbc->notice_trial ||
                $this->banners_handler->spbc->notice_renew
            ) &&
            (! $this->isDismissed() || $this->is_settings_page)
        ) {
            return true;
        }

        return false;
    }

    /**
     * Print HTML of banner
     */
    protected function display()
    {
        $data = $this->template_data;
        $is_dismissible_text = $this->is_settings_page ? '' : 'is-dismissible';
        $div_head =  '<div class="spbc-notice error um-admin-notice notice spbc-banner-error '
            . $is_dismissible_text
            . '" id="'
            . $this->banner_id
            . '">';
        echo $div_head;
        ?>
            <div class="spbc-banner-content">
                <div class="spbc-banner-wrapper">
                    <div style="display: flex;">
                        <img src="<?php echo esc_url(SPBC_PATH . '/images/logo-cleantalk1.svg'); ?>" width="111px" height="24">
                        <span style="height: 24px;margin: 0 16px;text-align: center;color: #AAAAAA;border-left: 1px solid;"></span>
                        <a href="<?php echo esc_url($data['plugin_settings_link']); ?>" class="spbc-banner-link"                                >
                            <?php esc_html_e('Security', 'security-malware-firewall'); ?>
                        </a>
                    </div>

                    <div class="spbc-banner-text-wrapper">
                        <div class="spbc-banner-title">
                            <?php echo esc_html($data['title_main']); ?>
                        </div>
                        <div class="spbc-banner-subtitle">
                            <?php echo esc_html($data['title_numbers']); ?>
                        </div>
                        <div class="spbc-banner-subtitle spbc-banner-big-subtitle" style="margin-top: 8px;">
                            <?php echo esc_html($data['title_upd']); ?>
                        </div>
                    </div>
                </div>
                <div class="spbc-banner-button-wrapper">
                    <a href="<?php echo esc_url($data['renewal_link']); ?>" target="_blank" class="spbc-banner-button spbc-banner-button-red"><?php echo esc_html($data['btn_upgrade']); ?></a>
                </div>
            </div>

        <?php
        echo '</div>';
    }
}
