<?php
$this->include("Admin/Partials/synchronization_header.php");

?>


<div class="wrap em-synchronization-page">
    <div id="em-synchronization-info" class="em-d-none">
    <div class="em-d-flex em-p-3 em-bg-white em-mb-3">
        <div>
            <div class="em-d-flex em-mb-3 em-align-items-center">
                <img class="em-img-responsive em-me-3" style="width: 40px; height:40px;" alt="<?php echo __('Customers', 'easymailing') ?>" src="<?php $this->asset('plugin/img/synchronization_icon.svg') ?>">
                <div class="em-fw-bold em-me-3 em-w-50"><?php echo __('Iniciando el proceso de sincronización', 'easymailing') ?></div>
                <div class="em-ms-auto">
                    <img class="em-img-responsive" alt="<?php echo __('Customers', 'easymailing') ?>" src="<?php $this->asset('plugin/img/close_icon.svg') ?>">
                </div>
            </div>
            <div>
                <p class="em-mb-0">
	                <?php echo __('Nuestro plugin ha iniciado el proceso de sincronización inicial con tu tienda, y se ejecutará automáticamente en segundo plano. En algunos casos, la sincronización puede llevar algún tiempo, especialmente en sitios con una gran cantidad de pedidos y/o productos. Puedes navegar con tranquilidad mientras el proceso continúa.', 'easymailing') ?>
                    </p>
            </div>
        </div>
    </div>
    </div>

    <div class="em-d-flex em-mb-3">
        <div class="em-w-50 em-bg-white em-border em-border-gray-4 em-me-2 em-p-3">
            <div class="em-d-flex em-mb-3">
                <div class="em-w-50 em-fs-6"><?php echo __('Nombre de la tienda', 'easymailing') ?></div>
                <div class="em-w-50 em-fs-6 em-fw-bold">
					<?php echo $synchronizationConfig->getShopName(); ?>
                </div>
            </div>
            <div class="em-d-flex em-mb-3">
                <div class="em-w-50 em-fs-6"><?php echo __('Dominio', 'easymailing') ?></div>
                <div class="em-w-50 em-fs-6 em-fw-bold">
					<?php echo $synchronizationConfig->getShopDomain(); ?>
                </div>
            </div>
            <div class="em-d-flex em-mb-3">
                <div class="em-w-50 em-fs-6"><?php echo __('Audiencia', 'easymailing') ?></div>
                <div class="em-w-50 em-fs-6 em-fw-bold">
					<?php echo $audience->title; ?>
                </div>
            </div>
            <div class="em-d-flex">
                <div class="em-w-50 em-fs-6"><?php echo __('Grupo', 'easymailing') ?></div>
                <div class="em-w-50 em-fs-6 em-fw-bold">
			        <?php
                    foreach($audience->groups as $group) {
                        if($group->id === $groupIri){
                            echo $group->title;
                        }
                    }
                    ?>

                </div>
            </div>
        </div>
        <div class="em-w-50 em-bg-white em-border em-border-gray-4 em-ms-2 em-p-3">
            <div id="em_synchronization_status_container">
                <div class="em-d-flex em-mb-3 em-align-items-center">
                    <div class="em-w-50 em-fs-6"><?php echo __('Estado de la sincronización', 'easymailing') ?>:</div>
                    <div class="em-w-50 em-d-flex em-align-items-center">

                        <div id="em-synchronization-status" class="em-d-none">
                            <span id="em-synchronization-spinner" class="em-spinner em-d-none"></span>
                            <span id="em-synchronization-text"></span>
                        </div>

                    </div>
                </div>
                <div id="em-synchronization-detail" class="em-sync-detail em-mb-3 em-d-none">
                    <div class="em-sync-detail-phase"></div>
                    <div class="em-sync-detail-bar"><span></span></div>
                    <div class="em-sync-detail-meta">
                        <span class="em-sync-detail-percent"></span>
                        <span class="em-sync-detail-count"></span>
                    </div>
                </div>
                <div class="em-d-flex">
                    <div class="em-w-50 em-fs-6"><?php echo __('Última', 'easymailing') ?></div>
                    <div id="em_synchronization_end" class="em-w-50 em-fs-6 em-fw-bold"></div>
                </div>

            </div>
        </div>
    </div>



    <div class="em-d-flex em-mb-3 em-bg-white em-border em-border-gray-4">
        <div class="em-w-25 em-border-end em-border-1 em-p-4">
            <div class="em-d-flex em-align-items-center">
                <img class="em-img-responsive em-me-2" alt="<?php echo __('Clientes', 'easymailing') ?>" src="<?php $this->asset('plugin/img/customers_icon.svg') ?>">
                <div class="em-fw-bold em-fs-6"><?php echo __('Clientes', 'easymailing') ?></div>
            </div>
            <div class="em-fw-bold em-fs-2 em-mt-4">
	            <?php echo number_format($number_of_customers, 0, ',', '.'); ?>
            </div>
            <div class="em-sync-card-badges em-mt-3">
                <?php if ($errors_customers > 0): ?>
                    <span class="em-sync-badge em-sync-badge-error" title="<?php echo esc_attr__('Errores del API', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d error', '%d errores', $errors_customers, 'easymailing'), $errors_customers); ?>
                    </span>
                <?php endif; ?>
                <?php if ($skipped_customers_count > 0): ?>
                    <span class="em-sync-badge em-sync-badge-warn" title="<?php echo esc_attr__('No sincronizables', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d no sincronizable', '%d no sincronizables', $skipped_customers_count, 'easymailing'), $skipped_customers_count); ?>
                    </span>
                <?php endif; ?>
            </div>
        </div>
        <div class="em-w-25 em-border-end em-border-1 em-p-4">
            <div class="em-d-flex em-align-items-center">
                <img class="em-img-responsive em-me-2" alt="<?php echo __('Pedidos', 'easymailing') ?>" src="<?php $this->asset('plugin/img/orders_icon.svg') ?>">
                <div class="em-fw-bold em-fs-6"><?php echo __('Pedidos', 'easymailing') ?></div>
            </div>
            <div class="em-fw-bold em-fs-2 em-mt-4">
	            <?php echo number_format($number_of_orders, 0, ',', '.'); ?>
            </div>
            <div class="em-sync-card-badges em-mt-3">
                <?php if ($errors_orders > 0): ?>
                    <span class="em-sync-badge em-sync-badge-error" title="<?php echo esc_attr__('Errores del API', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d error', '%d errores', $errors_orders, 'easymailing'), $errors_orders); ?>
                    </span>
                <?php endif; ?>
                <?php if ($skipped_orders_count > 0): ?>
                    <span class="em-sync-badge em-sync-badge-warn" title="<?php echo esc_attr__('No sincronizables', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d no sincronizable', '%d no sincronizables', $skipped_orders_count, 'easymailing'), $skipped_orders_count); ?>
                    </span>
                <?php endif; ?>
            </div>
        </div>
        <div class="em-w-25  em-border-end em-border-1 em-p-4">

            <div class="em-d-flex em-align-items-center">
                <img class="em-img-responsive em-me-2" alt="<?php echo __('Productos', 'easymailing') ?>" src="<?php $this->asset('plugin/img/products_icon.svg') ?>">
                <div class="em-fw-bold em-fs-6"><?php echo __('Productos', 'easymailing') ?></div>
            </div>
            <div class="em-fw-bold em-fs-2 em-mt-4">
	            <?php echo number_format($number_of_products, 0, ',', '.'); ?>
            </div>
            <div class="em-sync-card-badges em-mt-3">
                <?php if ($errors_products > 0): ?>
                    <span class="em-sync-badge em-sync-badge-error" title="<?php echo esc_attr__('Errores del API', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d error', '%d errores', $errors_products, 'easymailing'), $errors_products); ?>
                    </span>
                <?php endif; ?>
            </div>
        </div>
        <div class="em-w-25  em-border-1 em-p-4">

            <div class="em-d-flex em-align-items-center">
                <img class="em-img-responsive em-me-2" alt="<?php echo __('Categorías', 'easymailing') ?>" src="<?php $this->asset('plugin/img/categories_icon.svg') ?>">
                <div class="em-fw-bold em-fs-6"><?php echo __('Categorías', 'easymailing') ?></div>
            </div>
            <div class="em-fw-bold em-fs-2 em-mt-4">
	            <?php echo number_format($number_of_categories, 0, ',', '.'); ?>
            </div>
            <div class="em-sync-card-badges em-mt-3">
                <?php if ($errors_categories > 0): ?>
                    <span class="em-sync-badge em-sync-badge-error" title="<?php echo esc_attr__('Errores del API', 'easymailing'); ?>">
                        <span class="em-sync-badge-dot"></span>
                        <?php echo sprintf(_n('%d error', '%d errores', $errors_categories, 'easymailing'), $errors_categories); ?>
                    </span>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <?php if ($total_skipped > 0 && !$is_syncing): ?>
    <div class="em-p-4 em-bg-white em-border em-border-gray-4 em-mb-3 em-sync-incidents">
        <div class="em-fw-bold em-fs-5 em-mb-2"><?php echo __('Incidencias en la sincronización', 'easymailing') ?></div>
        <p class="em-mb-3 em-fs-6">
            <?php echo __('Hay elementos que no se envían al API porque no cumplen los requisitos mínimos (email vacío, email duplicado entre varios usuarios o pedidos sin cliente asociado). Estos elementos no se reintentan automáticamente — revísalos en WooCommerce y corrígelos en origen.', 'easymailing'); ?>
        </p>
        <?php if ($skipped_customers_count > 0): ?>
            <details class="em-sync-incident-row">
                <summary>
                    <span class="em-sync-incident-count"><?php echo $skipped_customers_count; ?></span>
                    <span class="em-sync-incident-label">
                        <?php echo esc_html(_n('cliente no sincronizable', 'clientes no sincronizables', $skipped_customers_count, 'easymailing')); ?>
                    </span>
                    <span class="em-sync-incident-detail"><?php echo esc_html($skipped_customers_text); ?></span>
                </summary>
                <ul class="em-sync-incident-items">
                    <?php foreach ($skipped_customers_items as $item): ?>
                        <li>
                            <a href="<?php echo esc_url($item['edit_url']); ?>" target="_blank" rel="noopener">
                                <?php echo esc_html($item['label']); ?>
                            </a>
                            <?php if (!empty($item['email'])): ?>
                                <span class="em-sync-incident-item-email"><?php echo esc_html($item['email']); ?></span>
                            <?php endif; ?>
                            <span class="em-sync-incident-item-reason" <?php if (!empty($item['hint'])): ?>title="<?php echo esc_attr($item['hint']); ?>"<?php endif; ?>><?php echo esc_html($item['reason']); ?></span>
                        </li>
                    <?php endforeach; ?>
                    <?php if ($skipped_customers_count > count($skipped_customers_items)): ?>
                        <li class="em-sync-incident-more">
                            <?php echo esc_html(sprintf(__('y %d más…', 'easymailing'), $skipped_customers_count - count($skipped_customers_items))); ?>
                        </li>
                    <?php endif; ?>
                </ul>
            </details>
        <?php endif; ?>
        <?php if ($skipped_orders_count > 0): ?>
            <details class="em-sync-incident-row">
                <summary>
                    <span class="em-sync-incident-count"><?php echo $skipped_orders_count; ?></span>
                    <span class="em-sync-incident-label">
                        <?php echo esc_html(_n('pedido no sincronizable', 'pedidos no sincronizables', $skipped_orders_count, 'easymailing')); ?>
                    </span>
                    <span class="em-sync-incident-detail"><?php echo esc_html($skipped_orders_text); ?></span>
                </summary>
                <ul class="em-sync-incident-items">
                    <?php foreach ($skipped_orders_items as $item): ?>
                        <li>
                            <a href="<?php echo esc_url($item['edit_url']); ?>" target="_blank" rel="noopener">
                                <?php echo esc_html($item['label']); ?>
                            </a>
                            <?php if (!empty($item['email'])): ?>
                                <span class="em-sync-incident-item-email"><?php echo esc_html($item['email']); ?></span>
                            <?php endif; ?>
                            <span class="em-sync-incident-item-reason" <?php if (!empty($item['hint'])): ?>title="<?php echo esc_attr($item['hint']); ?>"<?php endif; ?>><?php echo esc_html($item['reason']); ?></span>
                        </li>
                    <?php endforeach; ?>
                    <?php if ($skipped_orders_count > count($skipped_orders_items)): ?>
                        <li class="em-sync-incident-more">
                            <?php echo esc_html(sprintf(__('y %d más…', 'easymailing'), $skipped_orders_count - count($skipped_orders_items))); ?>
                        </li>
                    <?php endif; ?>
                </ul>
            </details>
        <?php endif; ?>
    </div>
    <?php endif; ?>

    <?php if ($total_errors > 0 && !$is_syncing): ?>
    <div class="em-p-4 em-bg-white em-border em-border-gray-4 em-mb-3 em-sync-errors">
        <div class="em-fw-bold em-fs-5 em-mb-2"><?php echo __('Reintentar elementos fallidos', 'easymailing') ?></div>
        <p class="em-mb-3 em-fs-6">
            <?php
            echo __(
                "Hay elementos que el API rechazó en la última sincronización. Al pulsar el botón, el plugin limpiará los identificadores de recursos huérfanos y reencolará la sincronización únicamente para esos elementos. Los elementos ya sincronizados correctamente se conservan.",
                "easymailing"
            );
            ?>
        </p>
        <?php
        $error_groups = [
            [
                'count' => $errors_customers,
                'singular' => __('cliente en error', 'easymailing'),
                'plural' => __('clientes en error', 'easymailing'),
                'items' => $error_customers_items,
            ],
            [
                'count' => $errors_orders,
                'singular' => __('pedido en error', 'easymailing'),
                'plural' => __('pedidos en error', 'easymailing'),
                'items' => $error_orders_items,
            ],
            [
                'count' => $errors_products,
                'singular' => __('producto en error', 'easymailing'),
                'plural' => __('productos en error', 'easymailing'),
                'items' => $error_products_items,
            ],
            [
                'count' => $errors_categories,
                'singular' => __('categoría en error', 'easymailing'),
                'plural' => __('categorías en error', 'easymailing'),
                'items' => $error_categories_items,
            ],
        ];
        ?>
        <?php foreach ($error_groups as $group): ?>
            <?php if ($group['count'] > 0): ?>
                <details class="em-sync-incident-row em-sync-incident-row--error">
                    <summary>
                        <span class="em-sync-incident-count"><?php echo $group['count']; ?></span>
                        <span class="em-sync-incident-label">
                            <?php echo esc_html(_n($group['singular'], $group['plural'], $group['count'], 'easymailing')); ?>
                        </span>
                    </summary>
                    <ul class="em-sync-incident-items">
                        <?php foreach ($group['items'] as $item): ?>
                            <li class="em-sync-incident-item--with-message">
                                <div class="em-sync-incident-item-head">
                                    <a href="<?php echo esc_url($item['edit_url']); ?>" target="_blank" rel="noopener">
                                        <?php echo esc_html($item['label']); ?>
                                    </a>
                                    <?php if (!empty($item['email'])): ?>
                                        <span class="em-sync-incident-item-email"><?php echo esc_html($item['email']); ?></span>
                                    <?php endif; ?>
                                </div>
                                <?php if (!empty($item['error'])): ?>
                                    <div class="em-sync-incident-item-message"><?php echo esc_html($item['error']); ?></div>
                                <?php endif; ?>
                            </li>
                        <?php endforeach; ?>
                        <?php if ($group['count'] > count($group['items'])): ?>
                            <li class="em-sync-incident-more">
                                <?php echo esc_html(sprintf(__('y %d más…', 'easymailing'), $group['count'] - count($group['items']))); ?>
                            </li>
                        <?php endif; ?>
                    </ul>
                </details>
            <?php endif; ?>
        <?php endforeach; ?>
        <div class="em-d-flex em-mt-3 em-align-items-center">
            <form action="" method="POST" class="em-me-2">
                <input type="hidden" name="action" value="retry_failed" />
                <input type="submit" name="submit" class="em-submit-button" value="<?php echo esc_attr(__('Reintentar elementos fallidos', 'easymailing')); ?>">
            </form>
            <form action="" method="POST">
                <input type="hidden" name="action" value="dismiss_failed" />
                <input type="submit" name="submit" class="em-btn em-btn-info em-btn-outline" value="<?php echo esc_attr(__('Descartar elementos fallidos', 'easymailing')); ?>" onclick="return confirm('<?php echo esc_js(__('Se ocultará este bloque y se borrará el estado de error de estos elementos. Los datos de WooCommerce no se eliminarán.', 'easymailing')); ?>');">
            </form>
        </div>
    </div>
    <?php endif; ?>

<!--    <div class="em-p-3 em-bg-white em-mb-3">-->
<!--        <p class="em-fw-bold">Mas Información</p>-->
<!--        <p class="">Nuestro plugin ha iniciado el proceso de sincronización inicial con tu tienda, y se ejecutará automáticamente en segundo plano. En algunos casos, la sincronización puede llevar algún tiempo, especialmente en sitios con una gran cantidad de pedidos y/o productos. Puedes navegar con tranquilidad mientras el proceso continúa.</p>-->
<!--        <p class="">Nuestro plugin ha iniciado el proceso de sincronización inicial con tu tienda, y se ejecutará automáticamente en segundo plano. En algunos casos, la sincronización puede llevar algún tiempo, especialmente en sitios con una gran cantidad de pedidos y/o productos. Puedes navegar con tranquilidad mientras el proceso continúa.</p>-->
<!--        <p class="">Nuestro plugin ha iniciado el proceso de sincronización inicial con tu tienda, y se ejecutará automáticamente en segundo plano. En algunos casos, la sincronización puede llevar algún tiempo, especialmente en sitios con una gran cantidad de pedidos y/o productos. Puedes navegar con tranquilidad mientras el proceso continúa.</p>-->
<!--    </div>-->
</div>
