# c:\mim\backend\projects\management\commands\friday_summary.py
from django.core.management.base import BaseCommand
from django.utils import timezone
from django.contrib.auth import get_user_model
from projects.models import Uzdevums, AgentaZina
from telegram_bot.gemini_client import ask_gemini
from telegram_bot.handlers import send_message
import datetime

User = get_user_model()

class Command(BaseCommand):
    help = 'Ģenerē un nosūta AI nedēļas kopsavilkumu par klientu projektiem caur Telegram'

    def handle(self, *args, **options):
        nedelas_sakums = timezone.now() - datetime.timedelta(days=7)
        klienti = User.objects.filter(telegram_id__isnull=False)
        
        count = 0
        for klients in klienti:
            # Apkopojam 7 dienu datus
            uzdevumi = Uzdevums.objects.filter(klients=klients, atjaunots__gte=nedelas_sakums)
            zinas = AgentaZina.objects.filter(klients=klients, izveidots__gte=nedelas_sakums)
            
            if not uzdevumi.exists() and not zinas.exists():
                continue # Nekas nav noticis šonedēļ
                
            konteksts = "Šīs nedēļas izmaiņas:\n"
            if uzdevumi:
                konteksts += "\nUzdevumu progress:\n"
                for u in uzdevumi:
                    konteksts += f"- {u.tituls} -> {u.statuss}\n"
            if zinas:
                konteksts += f"\nKlienta iesaiste: Augšupielādēti {zinas.count()} jauni materiāli/dati."
                
            prompt = (
                f"Sagatavo ļoti īsu, draudzīgu un motivējošu piektdienas pēcpusdienas kopsavilkumu klientam par mūsu sadarbību pagājušajā nedēļā. "
                f"Lūk izejas dati tieši no datubāzes: {konteksts}. Iekļauj laba vēlējumus nedēļas nogalei! "
                f"Neizmanto dīvainus virsrakstus. Uzrunā klientu īsi un tieši."
            )
            
            try:
                # Ģenerējam kopsavilkumu caur Gemini
                kopsavilkums = ask_gemini(prompt, user_context=f"Klienta vārds: {klients.full_name or klients.email}")
                
                # Sūtam uz TG
                msg = f"🌅 *Tavs Nedēļas Kopsavilkums*\n\n{kopsavilkums}"
                send_message(klients.telegram_id, msg)
                count += 1
                
            except Exception as e:
                self.stdout.write(self.style.ERROR(f"Kļūda AI kopsavilkumā priekš {klients.email}: {e}"))
                
        self.stdout.write(self.style.SUCCESS(f'Piektdienas kopsavilkumi veiksmīgi uzģenerēti un nosūtīti {count} klientiem!'))
