import uuid

from confluent_kafka import Producer
import json
from django.conf import settings

from api.models import KafkaLog

host = settings.KAFKA_CONFIG["HOST"]
port = str(settings.KAFKA_CONFIG["PORT"])
producer = Producer({"bootstrap.servers": host + ":" + port})

def send_request(topic, data, socket_id: None,method):
    request_id = str(uuid.uuid4())
    data["request_id"] = request_id
    headers = [
        ("method", method.encode("utf-8")),
    ]
    producer.produce(
        topic,
        json.dumps(data).encode("utf-8"),
        headers=headers,
    )
    KafkaLog.insert_request(request_id, topic, data,socket_id,headers)
    # producer.poll(0)
    producer.flush()