from datetime import datetime, date, time

from django.core.management.base import BaseCommand
from django.forms import model_to_dict

from api.models import TtActivity
from backend.kafka import send_request

class Command(BaseCommand):
    def handle(self, *args, **options):

        method = "booking_update"
        kafka_topic = "microservices-tt"
        kafka_activity = []
        new_data = TtActivity.objects.filter(is_booking=1).prefetch_related("week").order_by("id")
        booking_count = 0
        for val in new_data:
            data = {
                "id": val.id,
                "code": val.code,
                "name": val.name,
                "desc": val.desc,
                "activity_type_id": val.activity_type_id,
                "department_id": val.department_id,
                "duration": val.duration,
                "slot_required": val.slot_required,
                "planned_size": val.planned_size,
                "status": val.status,
                "week": [w.id for w in val.week.all()],
            }
            kafka_activity.append(data)
            booking_count += 1
        kafka_request_data = {
            "session_id": "",
            "activity": kafka_activity,
        }
        send_request(kafka_topic, kafka_request_data, None, method)
        print("Booking:"+str(booking_count))