import asyncio
from datetime import datetime
# Frissített importok az új fájlnevekhez:
from .harvester_cars import CarHarvester 
from .harvester_bikes import BikeHarvester
from .harvester_trucks import TruckHarvester

class RobotManager:
    @staticmethod
    async def run_full_sync(db):
        """Sorban lefuttatja az összes robotot."""
        print(f"🕒 Szinkronizáció indítva: {datetime.now()}")
        
        robots = [
            CarHarvester(),
            BikeHarvester(),
            TruckHarvester()
        ]
        
        for robot in robots:
            try:
                # Itt a robot lekéri az API-tól az ÖSSZES márkát és frissít
                await robot.run(db) 
                await asyncio.sleep(5) 
            except Exception as e:
                print(f"❌ Hiba a {robot.category} robotnál: {e}")

    @staticmethod
    async def schedule_nightly_run(db):
        """
        Egyszerű ciklus, ami figyeli az időt. 
        Ha éjjel 2 óra van, elindítja a teljes szinkront.
        """
        while True:
            now = datetime.now()
            # Ha hajnali 2 és 2:01 között vagyunk, indítás
            if now.hour == 2 and now.minute == 0:
                await RobotManager.run_full_sync(db)
                await asyncio.sleep(70) # Várunk, hogy ne induljon el többször ugyanabban a percben
            await asyncio.sleep(30) # 30 másodpercenként ellenőrizzük az időt