import "server-only";

import { createHmac } from "node:crypto";

export const STATUS_ENDPOINT =
  process.env.STATUS_ENDPOINT ||
  process.env.NEXT_PUBLIC_STATUS_ENDPOINT ||
  "https://dev.protect4less.com/api/p4l/diagnostics/test-result/";
export const PARTNER_CODE =
  process.env.STATUS_PARTNER_CODE || "04aae580-a157-4732-ab2d-ea33019afe9b";
const JWT_SECRET =
  process.env.STATUS_JWT_SECRET || "61db531dabaaf2203b4d8cb16de77054";

function base64url(value: object) {
  return Buffer.from(JSON.stringify(value)).toString("base64url");
}

export function generateBackendJwt() {
  const now = Math.floor(Date.now() / 1000);
  const header = base64url({ alg: "HS256", typ: "JWT" });
  const payload = base64url({
    iat: now,
    exp: now + 5 * 60,
  });
  const signedContent = `${header}.${payload}`;
  const signature = createHmac("sha256", JWT_SECRET)
    .update(signedContent)
    .digest("base64url");

  return `${signedContent}.${signature}`;
}
