<?php

namespace CleantalkSP\SpbctWP\AdminBannersModule\AdminBanners;

use CleantalkSP\SpbctWP\AdminBannersModule\AdminBannersHandler;
use CleantalkSP\SpbctWP\LinkConstructor;
use CleantalkSP\SpbctWP\State;

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

    /**
     * Simple Banner Name, must be unique
     */
    const NAME = 'trial_fullpage';

    /**
     * @var State
     */
    private $spbc;

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

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

        $this->spbc = $spbc;
        $this->banner_id         = $this->prefix . $this::NAME . '_' . $banners_handler->getUserId();

        $user_token = $spbc->user_token ?: '';
        $renewal_link = LinkConstructor::buildRenewalLink(
            $user_token,
            4,
            'renew_notice_trial'
        );

        $this->template_data = array(
            'renewal_link' => $renewal_link,
            'plugin_settings_link' => $banners_handler->getPluginSettingsLink(),
            'title_main' => $spbc->notice_trial == 1
                ? __('Upgrade Your License to Keep Your Site Secure', 'cleantalk-spam-protect')
                : __('Renew Your License to Keep Your Site Secure', 'cleantalk-spam-protect'),
            'subtitle' => $spbc->notice_trial == 1
                ? __('Trial period is now over, please upgrade to premium version to keep your site secure and safe!', 'cleantalk-spam-protect')
                : __('Your license has expired, please renew it to keep your site secure and safe!', 'cleantalk-spam-protect'),
            'network_statistics_title' => sprintf(
                __('As of %s Network Statistics:', 'security-malware-firewall'),
                date_i18n('F Y')
            ),
            'network_statistics_trusted_sites' => __(
                'sites trust CleanTalk',
                'security-malware-firewall'
            ),
            'network_statistics_attacks_blocked' => __(
                'security attacks successfully blocked across all protected websites',
                'security-malware-firewall'
            ),
            'network_statistics_brute_force' => __(
                'brute-force attack attempts prevented',
                'security-malware-firewall'
            ),
            'network_statistics_files_scanned' => __(
                'files scanned for malicious code',
                'security-malware-firewall'
            ),
            'upgrade_benefits_title' => __(
                'What you get when you upgrade:',
                'security-malware-firewall'
            ),
            'upgrade_benefits_continuous_protection' => __(
                'Continuous Protection Against Brute-Force and Malicious Attacks',
                'security-malware-firewall'
            ),
            'upgrade_benefits_automatic_scanning' => __(
                'Daily Automatic File Scanning and Malware Cleanup',
                'security-malware-firewall'
            ),
            'upgrade_benefits_technical_support' => __(
                '24/7 Technical Support from CleanTalk Security Experts',
                'security-malware-firewall'
            ),
            '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'),
        );
    }

    /**
     * Always return false so the banner is never considered persistently dismissed.
     * Closing the banner hides it only for the current page session (JS side).
     *
     * @return bool
     */
    protected function isDismissed()
    {
        return false;
    }

    /**
     * Check if fullpage trial banner needs to be shown.
     * Called from Settings::page() to decide whether to render settings or this banner.
     *
     * @return bool
     */
    public function needToShow()
    {
        if (
            $this->spbc->notice_show &&
            ($this->spbc->notice_trial || $this->spbc->notice_renew)
        ) {
            return true;
        }

        return false;
    }

    /**
     * Render the fullpage banner (wizard-style card layout).
     */
    public function display()
    {
        $data = $this->template_data;
        $banner_id = $this->banner_id;
        ?>
        <style>
            #wpfooter {
                display: none;
            }
        </style>
        <script>
            if (!document.referrer || document.referrer.indexOf('page=spbc') === -1) {
                sessionStorage.removeItem('spbc_trial_renew_fullpage_dismissed');
            }
            if (sessionStorage.getItem('spbc_trial_renew_fullpage_dismissed')) {
                document.write('<style>.spbc-trial-renew-fullpage{display:none !important;}</style>');
                document.addEventListener('DOMContentLoaded', function() {
                    var react = document.getElementById('spbct-page--react');
                    if (react) react.style.display = '';
                });
            }
        </script>
        <div class="spbc-trial-renew-fullpage">
            <div
                class="spbc-notice error um-admin-notice notice is-dismissible spbc-banner-error spbc-trial-renew-fullpage-notice"
                id="<?php echo esc_attr($banner_id); ?>"
            >
                <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-trial-renew-fullpage-body">
                        <div class="spbc-banner-header">
                            <div>
                                <div class="spbc-banner-title">
                                    <?php echo esc_html($data['title_main']); ?>
                                </div>
                                <div class="spbc-banner-subtitle">
                                    <?php echo esc_html($data['subtitle']); ?>
                                </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>
                        <div class="spbc-banner-subtitle">
                            <?php echo esc_html($data['title_upd']); ?>
                        </div>

                        <div class="spbc-banner-desc-blocks-content">
                            <div class="spbc-banner-desc-blocks">
                                <div class="spbc-banner-background-container">
                                    <div class="spbc-banner-desc-block-title">
                                        <?php echo esc_html($data['network_statistics_title']); ?>
                                    </div>
                                    <div class="spbc-banner-desc-block-row">
                                        <span class="spbc-banner-red-point"></span>
                                        <span class="spbc-banner-desc-block-title spbc-banner-stat-value">10,450,238</span>
                                        <span  class="spbc-banner-subtitle spbc-banner-desc-block-text">
                                            <?php echo esc_html($data['network_statistics_attacks_blocked']); ?>
                                        </span>
                                    </div>
                                    <div class="spbc-banner-desc-block-row">
                                        <span class="spbc-banner-red-point"></span>
                                        <span class="spbc-banner-desc-block-title spbc-banner-stat-value">1,399,842</span>
                                        <span class="spbc-banner-subtitle spbc-banner-desc-block-text">
                                            <?php echo esc_html($data['network_statistics_brute_force']); ?>
                                        </span>
                                    </div>
                                    <div class="spbc-banner-desc-block-row">
                                        <span class="spbc-banner-red-point"></span>
                                        <span class="spbc-banner-desc-block-title spbc-banner-stat-value">60,645,183</span>
                                        <span  class="spbc-banner-subtitle spbc-banner-desc-block-text">
                                            <?php echo esc_html($data['network_statistics_files_scanned']); ?>
                                        </span>
                                    </div>
                                    <div class="spbc-banner-desc-block-row">
                                        <span class="spbc-banner-red-point"></span>
                                        <span class="spbc-banner-desc-block-title spbc-banner-stat-value">1,078,000+</span>
                                        <span class="spbc-banner-subtitle spbc-banner-desc-block-text">
                                            <?php echo esc_html($data['network_statistics_trusted_sites']); ?>
                                        </span>
                                    </div>
                                </div>
                                <div class="spbc-banner-background-container">
                                    <div class="spbc-banner-desc-block-title">
                                        <?php echo esc_html($data['upgrade_benefits_title']); ?>
                                    </div>
                                    <div class="spbc-banner-desc-block-row" style="gap: 12px;">
                                        <img class="spbc-banner-check" src="<?php echo esc_url(SPBC_PATH . '/images/check.svg'); ?>" width="20" height="20">
                                        <span class="spbc-banner-subtitle" style="margin-top: 0px;"><?php echo esc_html($data['upgrade_benefits_continuous_protection']); ?></span>
                                    </div>
                                    <div class="spbc-banner-desc-block-row" style="gap: 12px;">
                                        <img class="spbc-banner-check" src="<?php echo esc_url(SPBC_PATH . '/images/check.svg'); ?>" width="20" height="20">
                                        <span class="spbc-banner-subtitle" style="margin-top: 0px;"><?php echo esc_html($data['upgrade_benefits_automatic_scanning']); ?></span>
                                    </div>
                                    <div class="spbc-banner-desc-block-row" style="gap: 12px;">
                                        <img class="spbc-banner-check" src="<?php echo esc_url(SPBC_PATH . '/images/check.svg'); ?>" width="20" height="20">
                                        <span class="spbc-banner-subtitle" style="margin-top: 0px;"><?php echo esc_html($data['upgrade_benefits_technical_support']); ?></span>
                                    </div>
                                </div>
                            </div>
                            <img class="spbc-trial-renew-fullpage-image" src="<?php echo esc_url(SPBC_PATH . '/images/img_fullpage_trial_banner.svg'); ?>">
                        </div>
                        <div class="spbc-trial-renew-upgrade">
                            <a class="spbc-trial-renew-upgrade-link" href="<?php echo esc_url($data['renewal_link']); ?>">Upgrade now</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <?php
    }
}
