'use server';
import {  headers } from "next/headers";
import { UAParser } from 'ua-parser-js';
export const deviceInformation = async () => {
    try {
      const headersList = headers(); // Assuming headers() function is defined elsewhere
      const userAgentString = (await headersList).get("user-agent") || "";
      let ip =
        (await headersList).get("x-forwarded-for") ||
        (await headersList).get("x-real-ip") ||
        "127.0.0.1";
        
        if (ip === "::1") ip = "127.0.0.1";

        ip = ip.replace(/^::ffff:/, "");
  
      const uaParser = new UAParser(userAgentString);
      const userAgent = uaParser.getResult();
      const platform = userAgent.os.name;
      const browser = userAgent.browser.name;
      const isMobile =
        userAgent.device.type?.toLowerCase() === "mobile" ? "yes" : "no";
       
      const deviceInfo = {
        ip_address: ip || "127.0.0.1",
        platform: platform || "Unknown",
        browser: browser || "Unknown",
        isMobile: isMobile
      };
  
      return deviceInfo;
    } catch (error) {
      console.error("Error fetching device information:", error); // Log any errors
      // throw error; // Rethrow the error to handle it in the caller function
    }
  };