import { getToken } from "firebase/messaging";
import { getFirebaseMessaging } from "@/lib/firebase";

export const getDeviceToken = async (): Promise<string | null> => {
  try {
    if (typeof window === "undefined") return null;

    const messaging = await getFirebaseMessaging();
    if (!messaging) return null;

    const vapidKey = process.env.NEXT_PUBLIC_FIREBASE_WEB_PUSH_VAPID_KEY;
    if (!vapidKey) {
      console.warn("Missing VAPID key.");
      return null;
    }

    const token = await getToken(messaging, {
      vapidKey,
    });

    return token;
  } catch (error) {
    console.error("Failed to get device token", error);
    return null;
  }
};
