<?php

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

class AIEO_SSO_Account_Tab {

    const ENDPOINT = 'connected-accounts';

    public static function register() {
        
        
        
        add_action('woocommerce_account_edit-account_endpoint', array(__CLASS__, 'render'), 20);
        add_action('template_redirect', array(__CLASS__, 'maybe_handle_unlink'));
    }

    public static function maybe_handle_unlink() {
        if (!is_user_logged_in()) { return; }
        if (empty($_GET['aieo_sso_unlink']) || empty($_GET['_wpnonce'])) { return; }
        $code = sanitize_key((string) wp_unslash($_GET['aieo_sso_unlink']));
        if (!wp_verify_nonce((string) wp_unslash($_GET['_wpnonce']), 'aieo_sso_unlink_' . $code)) { return; }
        if (class_exists('AIEO_SSO_Account_Linker')) {
            AIEO_SSO_Account_Linker::unlink((int) get_current_user_id(), $code);
        }
        wp_safe_redirect(add_query_arg(array(
            'aieo_sso_notice' => rawurlencode(__('Ο λογαριασμός αποσυνδέθηκε.', 'ai-eshop-optimizer')),
            'aieo_sso_kind'   => 'success',
        ), wc_get_account_endpoint_url('edit-account')));
        exit;
    }

    public static function render() {
        if (!is_user_logged_in()) {
            echo '<p>' . esc_html__('Παρακαλώ συνδεθείτε.', 'ai-eshop-optimizer') . '</p>';
            return;
        }
        if (!empty($GLOBALS['aieo_sso_account_panel_rendered'])) { return; }
        $GLOBALS['aieo_sso_account_panel_rendered'] = true;
        
        if (!class_exists('AIEO_SSO_Buttons_Data')) {
            echo '<p>' . esc_html__('Η ενσωμάτωση συνδέσεων δεν είναι ενεργή.', 'ai-eshop-optimizer') . '</p>';
            return;
        }

        $user_id = (int) get_current_user_id();
        $providers = AIEO_SSO_Buttons_Data::enabled_providers_for_intent('my_account');
        if (empty($providers)) {
            echo '<p>' . esc_html__('Δεν έχει ενεργοποιηθεί κανένας πάροχος για αυτή τη σελίδα.', 'ai-eshop-optimizer') . '</p>';
            return;
        }

        echo '<div class="aieo-sso-connected" style="margin-top:32px;padding-top:24px;border-top:1px solid #e5e7eb;">';

        
        if (!empty($_GET['aieo_sso_notice'])) {
            $kind = isset($_GET['aieo_sso_kind']) ? sanitize_key((string) wp_unslash($_GET['aieo_sso_kind'])) : 'info';
            $msg  = sanitize_text_field((string) wp_unslash((string) $_GET['aieo_sso_notice']));
            $bg   = $kind === 'success' ? '#dcfce7' : ($kind === 'error' ? '#fee2e2' : '#e0f2fe');
            $fg   = $kind === 'success' ? '#15803d' : ($kind === 'error' ? '#b91c1c' : '#075985');
            echo '<div style="margin:0 0 14px;padding:10px 14px;border-radius:8px;background:' . esc_attr($bg) . ';color:' . esc_attr($fg) . ';font-size:13px;">' . esc_html($msg) . '</div>';
        }

        echo '<h3 style="margin-top:0;">' . esc_html__('Συνδεδεμένοι λογαριασμοί', 'ai-eshop-optimizer') . '</h3>';
        echo '<p style="color:#4b5563;">' . esc_html__('Συνδέστε λογαριασμούς από άλλους παρόχους για γρήγορη είσοδο στο Femme Fatale χωρίς κωδικό.', 'ai-eshop-optimizer') . '</p>';

        echo '<table class="aieo-sso-account-tab" style="width:100%;border-collapse:collapse;margin-top:12px;">';
        echo '<thead><tr style="text-align:left;border-bottom:1px solid #e5e7eb;">';
        echo '<th style="padding:8px 4px;font-weight:600;font-size:12px;text-transform:uppercase;color:#6b7280;">' . esc_html__('Πάροχος', 'ai-eshop-optimizer') . '</th>';
        echo '<th style="padding:8px 4px;font-weight:600;font-size:12px;text-transform:uppercase;color:#6b7280;">' . esc_html__('Κατάσταση', 'ai-eshop-optimizer') . '</th>';
        echo '<th style="padding:8px 4px;text-align:right;font-weight:600;font-size:12px;text-transform:uppercase;color:#6b7280;">' . esc_html__('Ενέργεια', 'ai-eshop-optimizer') . '</th>';
        echo '</tr></thead><tbody>';
        foreach ($providers as $p) {
            $code   = $p['code'];
            $linked_uid = (string) get_user_meta($user_id, '_aieo_social_' . $code . '_uid', true);
            $linked_em  = (string) get_user_meta($user_id, '_aieo_social_' . $code . '_email', true);
            $is_linked  = ($linked_uid !== '');

            $connect_url = add_query_arg(array(
                'intent'      => 'connect',
                'redirect_to' => rawurlencode(wc_get_account_endpoint_url('edit-account')),
            ), rest_url('aieo/v1/social-login/' . $code . '/start'));

            $unlink_url = wp_nonce_url(add_query_arg(array(
                'aieo_sso_unlink' => $code,
            ), wc_get_account_endpoint_url('edit-account')), 'aieo_sso_unlink_' . $code);

            echo '<tr style="border-bottom:1px solid #f3f4f6;">';
            echo '<td style="padding:14px 4px;"><strong>' . esc_html($p['label']) . '</strong></td>';
            echo '<td style="padding:14px 4px;color:' . ($is_linked ? '#15803d' : '#6b7280') . ';">';
            if ($is_linked) {
                echo '✓ ' . esc_html__('Συνδεδεμένο', 'ai-eshop-optimizer');
                if ($linked_em !== '') { echo '<br><small style="color:#6b7280;">' . esc_html($linked_em) . '</small>'; }
            } else {
                echo esc_html__('Μη συνδεδεμένο', 'ai-eshop-optimizer');
            }
            echo '</td>';
            echo '<td style="padding:14px 4px;text-align:right;">';
            if ($is_linked) {
                echo '<a href="' . esc_url($unlink_url) . '" class="button button-link-delete" style="font-size:12px;">' . esc_html__('Αποσύνδεση', 'ai-eshop-optimizer') . '</a>';
            } else {
                echo '<a href="' . esc_url($connect_url) . '" class="button" style="font-size:12px;">' . esc_html__('Σύνδεση', 'ai-eshop-optimizer') . '</a>';
            }
            echo '</td></tr>';
        }
        echo '</tbody></table>';

        echo '</div>';
    }
}
