import { MetadataRoute } from "next";
import apis from "@/utils/apis";

export default async function manifest(): Promise<MetadataRoute.Manifest> {
  let name = "ReadyEats";
  let shortName = "ReadyEats";
  let faviconUrl = "/favicon1.png";

  try {
    const configRes = await apis.Auth.configuration();
    const config = configRes?.data?.[0];
    if (config?.product_name) {
      name = config.product_name;
      shortName = config.product_name.split(" ")[0] || config.product_name;
    }

    const fav = config?.app_favicon || config?.favicon || config?.branding?.app_favicon;
    if (fav) {
      const root = apis.BUCKET_ROOT || "";
      faviconUrl = `${root.replace(/\/$/, "")}/${fav}`;
    }
  } catch (error) {
    console.error("Error generating dynamic manifest metadata:", error);
  }

  const iconSrc = faviconUrl.startsWith("http") ? faviconUrl : `${faviconUrl}`;

  return {
    name: name,
    short_name: shortName,
    description: `Order delicious food, grocery, pharmacy, electronics, and clothing items easily and quickly from ${name}.`,
    start_url: "/",
    display: "standalone",
    background_color: "#ffffff",
    theme_color: "#271000",
    orientation: "portrait",
    scope: "/",
    icons: [
      {
        src: iconSrc,
        sizes: "any",
        type: "image/png",
        purpose: "any",
      },
      {
        src: "/icon-192.png",
        sizes: "192x192",
        type: "image/png",
        purpose: "any",
      },
      {
        src: "/icon-512.png",
        sizes: "512x512",
        type: "image/png",
        purpose: "any",
      },
      {
        src: "/icon-192-maskable.png",
        sizes: "192x192",
        type: "image/png",
        purpose: "maskable",
      },
      {
        src: "/icon-512-maskable.png",
        sizes: "512x512",
        type: "image/png",
        purpose: "maskable",
      }
    ],
  };
}
