import axios from "axios";
import crypto from "crypto";

export const addcommentData = async (
  formData: FormData,
  host?: string
) => {
  const baseurl =
    process.env.CMS_BASE_URL ||
    process.env.NEXT_PUBLIC_CMS_BASE_URL;

  const timeStamp = Date.now();

  const key =
    process.env.CMS_API_KEY ||
    process.env.NEXT_PUBLIC_CMS_API_KEY;

  const secret =
    process.env.CMS_API_SECRET ||
    process.env.NEXT_PUBLIC_CMS_API_SECRET;

  /** 🔐 Auth body for signature */
  const body = {
    timestamp: timeStamp,
  };

  const payload = Buffer.from(JSON.stringify(body)).toString();

  const signature = crypto
    .createHmac("sha256", secret as string)
    .update(payload)
    .digest("hex");

  const headers = {
    "X-AUTH-APIKEY": key,
    "X-AUTH-SIGNATURE": signature,
    "X-AUTH-TIMESTAMP": timeStamp.toString(),
    "x-host": host || "localhost:3000",

    // ❗ IMPORTANT: Do NOT set Content-Type manually for FormData
    // Axios will auto-set multipart boundary
  };

  try {
    const response = await axios.post(
      `${baseurl}/post/comment/create-comment`,
      formData,
      { headers }
    );

    return response.data;
  } catch (error) {
    console.error("Create Comment Error:", error);
    throw error;
  }
};

