from django.core.management.base import BaseCommand
import threading
import asyncio
from backoffice.EventManager import NFTMonitorManager
from asgiref.sync import sync_to_async
from django.db import connections

class Command(BaseCommand):
    help = 'Starts the NFT monitoring service'

    async def async_handle(self, *args, **options):
        await sync_to_async(connections.close_all)()
        monitor = NFTMonitorManager()
        monitor_thread = threading.Thread(target=monitor.start_monitoring)
        monitor_thread.start()

    def handle(self, *args, **options):
        asyncio.run(self.async_handle(*args, **options))
