/**
 * متادیتای یکسان برای صفحات قابل ایندکس: عنوان، توضیح، آدرس canonical،
 * Open Graph (تلگرام، واتس‌اپ، اینستاگرام) و Twitter Card.
 * Next.js مقدار openGraph والد را کامل جایگزین می‌کند، پس هر صفحه باید آن را کامل بسازد.
 */
import type { Metadata } from "next";
import { site } from "./site";

export const DEFAULT_OG_IMAGE = "/og/default";

export function seo(opts: { title: string; description: string; path: string; image?: string; absoluteTitle?: boolean }): Metadata {
  const image = { url: opts.image ?? DEFAULT_OG_IMAGE, width: 1200, height: 630, alt: opts.title };
  return {
    title: opts.absoluteTitle ? { absolute: opts.title } : opts.title,
    description: opts.description,
    alternates: { canonical: opts.path },
    openGraph: {
      type: "website",
      locale: "fa_IR",
      siteName: site.name,
      title: opts.title,
      description: opts.description,
      url: opts.path,
      images: [image],
    },
    twitter: { card: "summary_large_image", title: opts.title, description: opts.description, images: [image.url] },
  };
}
