from django.core.management.base import BaseCommand
from users.models import UserActivityLog
from asgiref.sync import sync_to_async
from django.db import connections

class Command(BaseCommand):
    help = "Импорт данных из таблицы wpts_user_activity_log в локальную базу"

    def handle(self, *args, **kwargs):
        self.stdout.write("Начало импорта данных...")

        try:
            # Подключение к основной базе данных (wordpress)
            with connections['wordpress'].cursor() as cursor:
                cursor.execute("SELECT * FROM wpts_user_activity_log")
                rows = cursor.fetchall()

                # Сохранение данных в локальной базе
                for row in rows:
                    UserActivityLog.objects.update_or_create(
                        id=row[0],  # Используем поле id как уникальный ключ
                        defaults={
                            'user_id': row[1],
                            'ip': row[2],
                            'created': row[3],
                            'timestamp': row[4],
                            'date_time': row[5],
                            'referred': row[6],
                            'agent': row[7],
                            'platform': row[8],
                            'version': row[9],
                            'model': row[10],
                            'device': row[11],
                            'UAString': row[12],
                            'location': row[13],
                            'page_id': row[14],
                            'url_parameters': row[15],
                            'page_title': row[16],
                            'type': row[17],
                            'last_counter': row[18],
                            'hits': row[19],
                            'honeypot': row[20],
                            'reply': row[21],
                            'page_url': row[22],
                        }
                    )

            self.stdout.write(self.style.SUCCESS("Импорт завершён успешно!"))
        except Exception as e:
            self.stderr.write(self.style.ERROR(f"Ошибка импорта: {str(e)}"))
