# c:\mim\backend\projects\management\commands\ping_inactive_tasks.py
from django.core.management.base import BaseCommand
from django.utils import timezone
from projects.models import Uzdevums
import datetime

class Command(BaseCommand):
    help = 'Pārbauda vecos uzdevumus un nosūta brīdinājuma "pingus" klientiem caur Telegram'

    def handle(self, *args, **options):
        # 3 dienu limits
        stale_date = timezone.now() - datetime.timedelta(days=3)
        
        # Meklējam neaktīvus IDEJAS un GAIDA uzdevumus
        stale_tasks = Uzdevums.objects.filter(
            statuss__in=['GAIDA', 'IDEJA'],
            atjaunots__lte=stale_date
        )
        
        count = 0
        from telegram_bot.handlers import send_message
        for task in stale_tasks:
            if task.klients and task.klients.telegram_id:
                # Nosūta atgādinājumu
                msg = (
                    f"⏰ *Miks Tevi nedaudz patraucēs!*\n\n"
                    f"Esmu pamanījis, ka tavs uzdevums/ideja *'{task.tituls}'* jau kādu brīdi stāv uz vietas.\n"
                    f"Ja sistēma gaida no Tevis failus, tekstus vai lēmumus — iemet tos man tepat čatā! Es nodošu zinu aģentūrai un paātrināšu procesu. 🚀"
                )
                try:
                    send_message(task.klients.telegram_id, msg)
                    
                    # Te mākslīgi pārrakstam atjaunošanas datumu, lai skripts nerakstītu katru nākošo dienu
                    Uzdevums.objects.filter(id=task.id).update(atjaunots=timezone.now())
                    count += 1
                except Exception as e:
                    self.stdout.write(self.style.ERROR(f"Kļūda sūtot uz {task.klients.telegram_id}: {e}"))
                
        self.stdout.write(self.style.SUCCESS(f'Veiksmīgi izsūtīti atgādinājumi par {count} uzdevumiem!'))
