from django.core.management.base import BaseCommand

from api.models import TtAcademicTerm
from api.utils import convert_to_redis_week, bulk_sync_to_redis
from backend.redis_client import redis_client

class Command(BaseCommand):
    def handle(self, *args, **options):
        redis_data={
            "update":{},
        }
        redis_table = "academic_term"

        models = TtAcademicTerm.objects.prefetch_related("week").all()

        total = 0
        for val in models:
            total += 1
            week_name = [w.week for w in val.week.all()]
            week_for_redis = convert_to_redis_week(week_name)
            redis_data["update"].setdefault(redis_table, []).append({
                "id": val.id,
                "week": week_for_redis,
            })

        bulk_sync_to_redis(redis_client, redis_data)
        print("academic term count:"+str(total))

