# /app/services/robot_manager.py
import asyncio
import logging
from datetime import datetime
from .harvester_cars import CarHarvester 
# Megjegyzés: Ellenőrizd, hogy a harvester_bikes/trucks fájlokban is BaseHarvester az alap!

logger = logging.getLogger(__name__)

class RobotManager:
    @staticmethod
    async def run_full_sync(db):
        """Sorban lefuttatja a robotokat az új AssetCatalog struktúrához."""
        logger.info(f"🕒 Teljes szinkronizáció indítva: {datetime.now()}")
        
        robots = [
            CarHarvester(),
            # BikeHarvester(),
            # TruckHarvester()
        ]
        
        for robot in robots:
            try:
                await robot.run(db) 
                logger.info(f"✅ {robot.category} robot sikeresen lefutott.")
                await asyncio.sleep(5) 
            except Exception as e:
                logger.error(f"❌ Kritikus hiba a {robot.category} robotnál: {e}")

    @staticmethod
    async def schedule_nightly_run(db):
        while True:
            now = datetime.now()
            if now.hour == 2 and now.minute == 0:
                await RobotManager.run_full_sync(db)
                await asyncio.sleep(70)
            await asyncio.sleep(30)