<?php
/**
 * کلاس انتقال از ووکامرس به Dima Shop
 * نسخه: 1.0.0
 * 
 * قابلیت‌ها:
 * - انتقال محصولات (با متاها، گالری، قیمت)
 * - انتقال دسته‌بندی‌ها
 * - انتقال برندها (اگر افزونه brands نصب باشد)
 * - انتقال سفارشات
 * - انتقال مشتریان
 * - انتقال کوپن‌ها
 * - انتقال نظرات
 */
if (!defined('ABSPATH')) exit;

class Dima_Migrator {
    
    private static $instance = null;
    private $log = array();
    
    public static function get_instance() {
        if (null === self::$instance) {
            self::$instance = new self();
        }
        return self::$instance;
    }
    
    private function __construct() {
        add_action('admin_menu', array($this, 'add_menu'), 99);
        add_action('wp_ajax_dima_migrate_start', array($this, 'ajax_migrate'));
        add_action('wp_ajax_dima_migrate_check', array($this, 'ajax_check'));
        add_action('wp_ajax_dima_migrate_rollback', array($this, 'ajax_rollback'));
    }
    
    /**
     * منوی میگریتور
     */
    public function add_menu() {
        add_submenu_page(
            'dima-shop',
            'انتقال از ووکامرس',
            '🔄 انتقال از ووکامرس',
            'manage_options',
            'dima-shop-migrator',
            array($this, 'render_page')
        );
    }
    
    /**
     * بررسی وجود ووکامرس
     */
    public function check_woocommerce() {
        $result = array(
            'woocommerce_active' => class_exists('WooCommerce'),
            'products_count' => 0,
            'orders_count' => 0,
            'categories_count' => 0,
            'customers_count' => 0,
            'coupons_count' => 0,
            'reviews_count' => 0
        );
        
        if (!class_exists('WooCommerce')) {
            return $result;
        }
        
        global $wpdb;
        
        $result['products_count'] = $wpdb->get_var(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'product' AND post_status = 'publish'"
        );
        
        $result['orders_count'] = $wpdb->get_var(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'shop_order'"
        );
        
        $result['categories_count'] = wp_count_terms(array('taxonomy' => 'product_cat', 'hide_empty' => false));
        
        $result['customers_count'] = $wpdb->get_var(
            "SELECT COUNT(DISTINCT meta_value) FROM {$wpdb->postmeta} WHERE meta_key = '_customer_user' AND meta_value > 0"
        );
        
        $result['coupons_count'] = $wpdb->get_var(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'shop_coupon'"
        );
        
        $result['reviews_count'] = $wpdb->get_var(
            "SELECT COUNT(*) FROM {$wpdb->comments} c 
             INNER JOIN {$wpdb->posts} p ON c.comment_post_ID = p.ID 
             WHERE p.post_type = 'product'"
        );
        
        return $result;
    }
    
    /**
     * صفحه میگریتور
     */
    public function render_page() {
        $check = $this->check_woocommerce();
        $migrated = get_option('dima_migration_data', array());
        ?>
        <div class="wrap dima-migrator-page">
            <h1>🔄 انتقال از ووکامرس به Dima Shop</h1>
            
            <?php if (!$check['woocommerce_active']): ?>
                <div class="notice notice-error">
                    <p><strong>❌ ووکامرس فعال نیست!</strong> برای استفاده از این ابزار، ووکامرس باید نصب و فعال باشد.</p>
                </div>
            <?php else: ?>
                
                <!-- آمار ووکامرس -->
                <div class="dima-migrator-stats">
                    <h2>📊 آمار ووکامرس</h2>
                    <div class="stats-grid">
                        <div class="stat-box">
                            <div class="stat-icon">📦</div>
                            <div class="stat-value"><?php echo intval($check['products_count']); ?></div>
                            <div class="stat-label">محصول</div>
                        </div>
                        <div class="stat-box">
                            <div class="stat-icon">🛒</div>
                            <div class="stat-value"><?php echo intval($check['orders_count']); ?></div>
                            <div class="stat-label">سفارش</div>
                        </div>
                        <div class="stat-box">
                            <div class="stat-icon">📂</div>
                            <div class="stat-value"><?php echo intval($check['categories_count']); ?></div>
                            <div class="stat-label">دسته‌بندی</div>
                        </div>
                        <div class="stat-box">
                            <div class="stat-icon">👥</div>
                            <div class="stat-value"><?php echo intval($check['customers_count']); ?></div>
                            <div class="stat-label">مشتری</div>
                        </div>
                        <div class="stat-box">
                            <div class="stat-icon">🎟️</div>
                            <div class="stat-value"><?php echo intval($check['coupons_count']); ?></div>
                            <div class="stat-label">کوپن</div>
                        </div>
                        <div class="stat-box">
                            <div class="stat-icon">⭐</div>
                            <div class="stat-value"><?php echo intval($check['reviews_count']); ?></div>
                            <div class="stat-label">نظر</div>
                        </div>
                    </div>
                </div>
                
                <!-- گزینه‌های انتقال -->
                <div class="dima-migrator-options">
                    <h2>⚙️ گزینه‌های انتقال</h2>
                    <form id="migrate-form">
                        <?php wp_nonce_field('dima_migrate_nonce', 'migrate_nonce'); ?>
                        
                        <div class="options-grid">
                            <label class="option-card">
                                <input type="checkbox" name="migrate_products" value="1" checked>
                                <div class="option-icon">📦</div>
                                <div class="option-title">محصولات</div>
                                <div class="option-desc">شامل قیمت، موجودی، گالری، دسته‌بندی</div>
                            </label>
                            
                            <label class="option-card">
                                <input type="checkbox" name="migrate_categories" value="1" checked>
                                <div class="option-icon">📂</div>
                                <div class="option-title">دسته‌بندی‌ها</div>
                                <div class="option-desc">همه دسته‌بندی‌ها و زیردسته‌ها</div>
                            </label>
                            
                            <label class="option-card">
                                <input type="checkbox" name="migrate_orders" value="1">
                                <div class="option-icon">🛒</div>
                                <div class="option-title">سفارشات</div>
                                <div class="option-desc">تاریخچه سفارشات مشتریان</div>
                            </label>
                            
                            <label class="option-card">
                                <input type="checkbox" name="migrate_customers" value="1">
                                <div class="option-icon">👥</div>
                                <div class="option-title">مشتریان</div>
                                <div class="option-desc">اطلاعات و آدرس مشتریان</div>
                            </label>
                            
                            <label class="option-card">
                                <input type="checkbox" name="migrate_coupons" value="1">
                                <div class="option-icon">🎟️</div>
                                <div class="option-title">کوپن‌ها</div>
                                <div class="option-desc">کوپن‌های تخفیف فعال</div>
                            </label>
                            
                            <label class="option-card">
                                <input type="checkbox" name="migrate_reviews" value="1" checked>
                                <div class="option-icon">⭐</div>
                                <div class="option-title">نظرات</div>
                                <div class="option-desc">نظرات و امتیازات محصولات</div>
                            </label>
                        </div>
                        
                        <div class="migrate-actions">
                            <button type="button" id="start-migrate-btn" class="button button-primary button-hero">
                                🚀 شروع انتقال
                            </button>
                            <button type="button" id="rollback-btn" class="button button-link-delete">
                                ↩️ بازگشت به حالت قبل
                            </button>
                        </div>
                    </form>
                </div>
                
                <!-- پیشرفت انتقال -->
                <div id="migrate-progress" class="dima-migrator-progress" style="display:none;">
                    <h2>⏳ در حال انتقال...</h2>
                    <div class="progress-bar-wrapper">
                        <div id="progress-bar" class="progress-bar-fill" style="width:0%"></div>
                    </div>
                    <div id="progress-text" class="progress-text">۰٪</div>
                    <div id="migrate-log" class="migrate-log"></div>
                </div>
                
                <!-- نتیجه انتقال -->
                <?php if (!empty($migrated)): ?>
                <div class="dima-migrator-result">
                    <h2>✅ آخرین انتقال</h2>
                    <table class="widefat">
                        <tr><th>تاریخ:</th><td><?php echo esc_html($migrated['date'] ?? '-'); ?></td></tr>
                        <tr><th>محصولات منتقل شده:</th><td><?php echo intval($migrated['products'] ?? 0); ?></td></tr>
                        <tr><th>دسته‌بندی‌ها:</th><td><?php echo intval($migrated['categories'] ?? 0); ?></td></tr>
                        <tr><th>سفارشات:</th><td><?php echo intval($migrated['orders'] ?? 0); ?></td></tr>
                        <tr><th>نظرات:</th><td><?php echo intval($migrated['reviews'] ?? 0); ?></td></tr>
                    </table>
                </div>
                <?php endif; ?>
                
            <?php endif; ?>
        </div>
        
        <style>
        .dima-migrator-page { max-width: 1100px; }
        .stats-grid, .options-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
            gap: 15px;
            margin: 20px 0;
        }
        .stat-box, .option-card {
            background: white;
            border: 2px solid #e5e7eb;
            border-radius: 12px;
            padding: 20px;
            text-align: center;
            transition: all 0.2s;
        }
        .option-card {
            cursor: pointer;
            position: relative;
        }
        .option-card:hover {
            border-color: #6366f1;
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(99, 102, 241, 0.1);
        }
        .option-card input {
            position: absolute;
            top: 10px;
            left: 10px;
        }
        .option-card input:checked ~ .option-icon {
            color: #6366f1;
        }
        .stat-icon, .option-icon { font-size: 32px; margin-bottom: 8px; }
        .stat-value { font-size: 28px; font-weight: 800; color: #4f46e5; }
        .stat-label, .option-desc { font-size: 13px; color: #6b7280; margin-top: 4px; }
        .option-title { font-weight: 700; font-size: 15px; }
        
        .migrate-actions {
            margin-top: 30px;
            display: flex;
            gap: 15px;
            justify-content: center;
        }
        
        .progress-bar-wrapper {
            height: 24px;
            background: #e5e7eb;
            border-radius: 12px;
            overflow: hidden;
            margin: 20px 0;
        }
        .progress-bar-fill {
            height: 100%;
            background: linear-gradient(90deg, #6366f1, #a855f7);
            transition: width 0.3s;
            border-radius: 12px;
        }
        .progress-text { text-align: center; font-weight: 700; font-size: 18px; }
        
        .migrate-log {
            background: #1f2937;
            color: #10b981;
            padding: 15px;
            border-radius: 8px;
            font-family: monospace;
            font-size: 12px;
            max-height: 300px;
            overflow-y: auto;
            margin-top: 15px;
            direction: ltr;
            text-align: left;
        }
        .migrate-log .error { color: #ef4444; }
        .migrate-log .success { color: #10b981; }
        .migrate-log .info { color: #60a5fa; }
        </style>
        
        <script>
        jQuery(document).ready(function($) {
            function addLog(message, type) {
                type = type || 'info';
                var time = new Date().toLocaleTimeString('fa-IR');
                $('#migrate-log').append('<div class="' + type + '">[' + time + '] ' + message + '</div>');
                $('#migrate-log').scrollTop($('#migrate-log')[0].scrollHeight);
            }
            
            $('#start-migrate-btn').on('click', function() {
                if (!confirm('آیا از شروع انتقال مطمئن هستید؟\n\nتوصیه می‌شود قبل از انتقال، از سایت backup بگیرید.')) {
                    return;
                }
                
                var $btn = $(this);
                $btn.prop('disabled', true).text('⏳ در حال انتقال...');
                
                $('#migrate-progress').show();
                addLog('شروع فرآیند انتقال...', 'info');
                
                var formData = $('#migrate-form').serialize();
                
                $.ajax({
                    url: ajaxurl,
                    type: 'POST',
                    timeout: 600000,
                    data: formData + '&action=dima_migrate_start&nonce=' + $('input[name="migrate_nonce"]').val(),
                    success: function(response) {
                        if (response.success) {
                            var data = response.data;
                            $('#progress-bar').css('width', '100%');
                            $('#progress-text').text('۱۰۰٪ - تکمیل شد!');
                            
                            addLog('✅ انتقال با موفقیت انجام شد!', 'success');
                            addLog('محصولات: ' + (data.products || 0), 'success');
                            addLog('دسته‌بندی‌ها: ' + (data.categories || 0), 'success');
                            addLog('سفارشات: ' + (data.orders || 0), 'success');
                            addLog('نظرات: ' + (data.reviews || 0), 'success');
                            
                            alert('✅ انتقال با موفقیت انجام شد!\n\nصفحه رفرش می‌شود...');
                            setTimeout(function() { location.reload(); }, 2000);
                        } else {
                            addLog('❌ خطا: ' + response.data.message, 'error');
                            alert('❌ ' + response.data.message);
                            $btn.prop('disabled', false).text('🚀 شروع انتقال');
                        }
                    },
                    error: function() {
                        addLog('❌ خطا در ارتباط با سرور', 'error');
                        $btn.prop('disabled', false).text('🚀 شروع انتقال');
                    }
                });
            });
            
            $('#rollback-btn').on('click', function() {
                if (!confirm('آیا از بازگشت به حالت قبل مطمئن هستید؟\n\nتمام داده‌های منتقل شده حذف خواهند شد!')) {
                    return;
                }
                
                $.post(ajaxurl, {
                    action: 'dima_migrate_rollback',
                    nonce: $('input[name="migrate_nonce"]').val()
                }, function(response) {
                    if (response.success) {
                        alert('✅ بازگشت با موفقیت انجام شد');
                        location.reload();
                    } else {
                        alert('❌ ' + response.data.message);
                    }
                });
            });
        });
        </script>
        <?php
    }
    
    /**
     * AJAX: شروع انتقال
     */
    public function ajax_migrate() {
        check_ajax_referer('dima_migrate_nonce', 'nonce');
        
        if (!current_user_can('manage_options')) {
            wp_send_json_error(array('message' => 'دسترسی غیرمجاز'));
            return;
        }
        
        if (!class_exists('WooCommerce')) {
            wp_send_json_error(array('message' => 'ووکامرس فعال نیست'));
            return;
        }
        
        // افزایش زمان اجرا
        set_time_limit(600);
        @ini_set('memory_limit', '512M');
        
        $result = array(
            'products' => 0,
            'categories' => 0,
            'orders' => 0,
            'customers' => 0,
            'coupons' => 0,
            'reviews' => 0
        );
        
        // 1. انتقال دسته‌بندی‌ها
        if (!empty($_POST['migrate_categories'])) {
            $result['categories'] = $this->migrate_categories();
        }
        
        // 2. انتقال محصولات
        if (!empty($_POST['migrate_products'])) {
            $result['products'] = $this->migrate_products();
        }
        
        // 3. انتقال نظرات
        if (!empty($_POST['migrate_reviews'])) {
            $result['reviews'] = $this->migrate_reviews();
        }
        
        // 4. انتقال کوپن‌ها
        if (!empty($_POST['migrate_coupons'])) {
            $result['coupons'] = $this->migrate_coupons();
        }
        
        // 5. انتقال سفارشات
        if (!empty($_POST['migrate_orders'])) {
            $result['orders'] = $this->migrate_orders();
        }
        
        // ذخیره اطلاعات انتقال
        update_option('dima_migration_data', array_merge($result, array(
            'date' => current_time('mysql'),
            'status' => 'completed'
        )));
        
        wp_send_json_success($result);
    }
    
    /**
     * انتقال دسته‌بندی‌ها
     */
    private function migrate_categories() {
        global $wpdb;
        $count = 0;
        
        $terms = get_terms(array(
            'taxonomy' => 'product_cat',
            'hide_empty' => false,
            'parent' => 0
        ));
        
        if (is_wp_error($terms)) return 0;
        
        foreach ($terms as $term) {
            $new_term = wp_insert_term($term->name, 'dima_product_cat', array(
                'description' => $term->description,
                'slug' => $term->slug
            ));
            
            if (!is_wp_error($new_term)) {
                $count++;
                // ذخیره mapping برای انتقال والد-فرزند
                update_term_meta($new_term['term_id'], '_wc_old_id', $term->term_id);
                
                // انتقال زیردسته‌ها
                $this->migrate_subcategories($term->term_id, $new_term['term_id']);
            }
        }
        
        return $count;
    }
    
    private function migrate_subcategories($parent_old_id, $parent_new_id) {
        $children = get_terms(array(
            'taxonomy' => 'product_cat',
            'hide_empty' => false,
            'parent' => $parent_old_id
        ));
        
        if (is_wp_error($children)) return;
        
        foreach ($children as $child) {
            $new_child = wp_insert_term($child->name, 'dima_product_cat', array(
                'description' => $child->description,
                'slug' => $child->slug,
                'parent' => $parent_new_id
            ));
            
            if (!is_wp_error($new_child)) {
                update_term_meta($new_child['term_id'], '_wc_old_id', $child->term_id);
                $this->migrate_subcategories($child->term_id, $new_child['term_id']);
            }
        }
    }
    
    /**
     * انتقال محصولات
     */
    private function migrate_products() {
        global $wpdb;
        $count = 0;
        
        $products = get_posts(array(
            'post_type' => 'product',
            'posts_per_page' => -1,
            'post_status' => 'publish'
        ));
        
        foreach ($products as $wc_product) {
            $product = wc_get_product($wc_product->ID);
            if (!$product) continue;
            
            // ایجاد محصول جدید
            $new_id = wp_insert_post(array(
                'post_title' => $wc_product->post_title,
                'post_content' => $wc_product->post_content,
                'post_excerpt' => $wc_product->post_excerpt,
                'post_status' => 'publish',
                'post_type' => 'dima_product',
                'post_author' => $wc_product->post_author
            ));
            
            if (is_wp_error($new_id)) continue;
            
            // متاهای قیمت و موجودی
            $price = $product->get_price();
            $stock = $product->get_stock_quantity();
            $sku = $product->get_sku();
            $weight = $product->get_weight();
            
            update_post_meta($new_id, '_dima_price', floatval($price ?: 0));
            update_post_meta($new_id, '_dima_stock', $stock !== null ? intval($stock) : '');
            update_post_meta($new_id, '_dima_sku', $sku ?: '');
            update_post_meta($new_id, '_dima_weight', $weight ? intval($weight) : 0);
            update_post_meta($new_id, '_wc_old_id', $wc_product->ID);
            
            // تصویر شاخص
            if (has_post_thumbnail($wc_product->ID)) {
                $thumb_id = get_post_thumbnail_id($wc_product->ID);
                set_post_thumbnail($new_id, $thumb_id);
            }
            
            // گالری تصاویر
            $gallery_ids = $product->get_gallery_image_ids();
            if (!empty($gallery_ids)) {
                update_post_meta($new_id, '_dima_gallery', array_map('intval', $gallery_ids));
            }
            
            // دسته‌بندی‌ها
            $wc_cats = wp_get_post_terms($wc_product->ID, 'product_cat', array('fields' => 'slugs'));
            if (!empty($wc_cats)) {
                $dima_cats = array();
                foreach ($wc_cats as $slug) {
                    $old_term = get_term_by('slug', $slug, 'product_cat');
                    if ($old_term) {
                        // پیدا کردن term_id جدید
                        $new_terms = get_terms(array(
                            'taxonomy' => 'dima_product_cat',
                            'hide_empty' => false,
                            'meta_key' => '_wc_old_id',
                            'meta_value' => $old_term->term_id
                        ));
                        if (!empty($new_terms)) {
                            $dima_cats[] = $new_terms[0]->term_id;
                        }
                    }
                }
                if (!empty($dima_cats)) {
                    wp_set_object_terms($new_id, $dima_cats, 'dima_product_cat');
                }
            }
            
            // ویژگی‌ها (Attributes)
            $attributes = $product->get_attributes();
            foreach ($attributes as $attr) {
                if (is_object($attr) && $attr->get_name()) {
                    $terms = $attr->get_terms();
                    if ($terms) {
                        foreach ($terms as $term) {
                            Dima_Attribute::add_attribute_to_product($new_id, $term->name);
                        }
                    }
                }
            }
            
            $count++;
        }
        
        return $count;
    }
    
    /**
     * انتقال نظرات
     */
    private function migrate_reviews() {
        global $wpdb;
        $count = 0;
        
        $reviews = $wpdb->get_results("
            SELECT c.*, p.ID as old_product_id
            FROM {$wpdb->comments} c
            INNER JOIN {$wpdb->posts} p ON c.comment_post_ID = p.ID
            WHERE p.post_type = 'product' AND c.comment_type = 'review'
        ");
        
        foreach ($reviews as $review) {
            $rating = get_comment_meta($review->comment_ID, 'rating', true);
            $verified = get_comment_meta($review->comment_ID, 'verified', true);
            
            // پیدا کردن محصول جدید
            $new_product_id = $wpdb->get_var($wpdb->prepare(
                "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_wc_old_id' AND meta_value = %d",
                $review->old_product_id
            ));
            
            if (!$new_product_id) continue;
            
            $wpdb->insert($wpdb->prefix . 'dima_reviews', array(
                'product_id' => $new_product_id,
                'user_id' => $review->user_id,
                'author_name' => $review->comment_author,
                'author_email' => $review->comment_author_email,
                'rating' => intval($rating ?: 5),
                'title' => '',
                'content' => $review->comment_content,
                'status' => $review->comment_approved == '1' ? 'approved' : 'pending',
                'verified_purchase' => $verified ? 1 : 0,
                'created_at' => $review->comment_date
            ));
            
            $count++;
        }
        
        // بروزرسانی میانگین امتیاز محصولات
        $this->update_all_ratings();
        
        return $count;
    }
    
    private function update_all_ratings() {
        global $wpdb;
        
        $products = get_posts(array(
            'post_type' => 'dima_product',
            'posts_per_page' => -1,
            'fields' => 'ids'
        ));
        
        foreach ($products as $product_id) {
            $stats = $wpdb->get_row($wpdb->prepare(
                "SELECT AVG(rating) as avg_rating, COUNT(*) as review_count 
                 FROM {$wpdb->prefix}dima_reviews 
                 WHERE product_id = %d AND status = 'approved'",
                $product_id
            ));
            
            update_post_meta($product_id, '_dima_avg_rating', $stats ? round($stats->avg_rating, 1) : 0);
            update_post_meta($product_id, '_dima_review_count', $stats ? intval($stats->review_count) : 0);
        }
    }
    
    /**
     * انتقال کوپن‌ها
     */
    private function migrate_coupons() {
        global $wpdb;
        $count = 0;
        
        $coupons = get_posts(array(
            'post_type' => 'shop_coupon',
            'posts_per_page' => -1,
            'post_status' => 'publish'
        ));
        
        foreach ($coupons as $coupon_post) {
            $coupon = new WC_Coupon($coupon_post->ID);
            
            $discount_type = $coupon->get_discount_type();
            $type = ($discount_type === 'percent') ? 'percent' : 'fixed';
            $amount = $coupon->get_amount();
            
            $wpdb->insert($wpdb->prefix . 'dima_coupons', array(
                'code' => $coupon->get_code(),
                'type' => $type,
                'value' => floatval($amount),
                'min_amount' => floatval($coupon->get_minimum_amount() ?: 0),
                'max_uses' => intval($coupon->get_usage_limit() ?: 0),
                'used_count' => intval($coupon->get_usage_count() ?: 0),
                'expiry_date' => $coupon->get_date_expires() ? $coupon->get_date_expires()->date('Y-m-d H:i:s') : null,
                'status' => 'active'
            ));
            
            $count++;
        }
        
        return $count;
    }
    
    /**
     * انتقال سفارشات
     */
    private function migrate_orders() {
        global $wpdb;
        $count = 0;
        
        $orders = wc_get_orders(array(
            'limit' => -1,
            'status' => array('completed', 'processing', 'on-hold')
        ));
        
        foreach ($orders as $wc_order) {
            $customer_data = array(
                'name' => $wc_order->get_billing_first_name() . ' ' . $wc_order->get_billing_last_name(),
                'phone' => $wc_order->get_billing_phone(),
                'email' => $wc_order->get_billing_email(),
                'address' => $wc_order->get_billing_address_1() . ' ' . $wc_order->get_billing_address_2(),
                'city' => $wc_order->get_billing_city(),
                'postal_code' => $wc_order->get_billing_postcode()
            );
            
            $status_map = array(
                'completed' => 'completed',
                'processing' => 'processing',
                'on-hold' => 'pending'
            );
            
            $wpdb->insert($wpdb->prefix . 'dima_orders', array(
                'user_id' => $wc_order->get_user_id(),
                'total_amount' => floatval($wc_order->get_total()),
                'discount_amount' => floatval($wc_order->get_total_discount()),
                'final_amount' => floatval($wc_order->get_total()),
                'status' => $status_map[$wc_order->get_status()] ?? 'pending',
                'payment_method' => $wc_order->get_payment_method(),
                'transaction_id' => $wc_order->get_transaction_id(),
                'customer_data' => wp_json_encode($customer_data),
                'created_at' => $wc_order->get_date_created() ? $wc_order->get_date_created()->date('Y-m-d H:i:s') : current_time('mysql')
            ));
            
            $order_id = $wpdb->insert_id;
            
            // آیتم‌های سفارش
            foreach ($wc_order->get_items() as $item) {
                $product_id = $item->get_product_id();
                
                // پیدا کردن محصول جدید
                $new_product_id = $wpdb->get_var($wpdb->prepare(
                    "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_wc_old_id' AND meta_value = %d",
                    $product_id
                ));
                
                if ($new_product_id) {
                    $wpdb->insert($wpdb->prefix . 'dima_order_items', array(
                        'order_id' => $order_id,
                        'product_id' => $new_product_id,
                        'quantity' => intval($item->get_quantity()),
                        'price' => floatval($item->get_total() / max(1, $item->get_quantity()))
                    ));
                }
            }
            
            $count++;
        }
        
        return $count;
    }
    
    /**
     * AJAX: بازگشت به حالت قبل
     */
    public function ajax_rollback() {
        check_ajax_referer('dima_migrate_nonce', 'nonce');
        
        if (!current_user_can('manage_options')) {
            wp_send_json_error(array('message' => 'دسترسی غیرمجاز'));
            return;
        }
        
        global $wpdb;
        
        // حذف محصولات منتقل شده
        $product_ids = $wpdb->get_col(
            "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_wc_old_id'"
        );
        
        foreach ($product_ids as $id) {
            wp_delete_post($id, true);
        }
        
        // حذف دسته‌بندی‌های منتقل شده
        $wpdb->query("DELETE tm FROM {$wpdb->termmeta} tm 
                      INNER JOIN {$wpdb->term_taxonomy} tt ON tm.term_id = tt.term_id 
                      WHERE tm.meta_key = '_wc_old_id' AND tt.taxonomy = 'dima_product_cat'");
        
        // حذف سفارشات منتقل شده
        $wpdb->query("TRUNCATE TABLE {$wpdb->prefix}dima_orders");
        $wpdb->query("TRUNCATE TABLE {$wpdb->prefix}dima_order_items");
        
        // حذف کوپن‌ها
        $wpdb->query("TRUNCATE TABLE {$wpdb->prefix}dima_coupons");
        
        // حذف نظرات
        $wpdb->query("TRUNCATE TABLE {$wpdb->prefix}dima_reviews");
        
        delete_option('dima_migration_data');
        
        wp_send_json_success(array('message' => 'بازگشت با موفقیت انجام شد'));
    }
    
    /**
     * AJAX: بررسی وضعیت
     */
    public function ajax_check() {
        check_ajax_referer('dima_migrate_nonce', 'nonce');
        wp_send_json_success($this->check_woocommerce());
    }
}