import type { Metadata } from "next";
import { parsePageParam } from "@/app/lib/blogs";
import { absoluteUrl, metadataForPath } from "@/app/lib/seo";
import { PageBreadcrumbJsonLd } from "@/app/markup/seo/json-ld";
import { Blogs } from "../markup/sections/blogs";

type PageProps = { searchParams: Promise<{ page?: string | string[] }> };

export async function generateMetadata({ searchParams }: PageProps): Promise<Metadata> {
  const page = parsePageParam((await searchParams).page);
  const base = metadataForPath("/blogs");
  if (page <= 1) return base;

  // Paged views get their own title and self-referencing canonical so they
  // are indexed as distinct pages rather than duplicates of page 1.
  const title = `Insights — Page ${page} | Oxyfinz`;
  const url = absoluteUrl(`/blogs?page=${page}`);

  return {
    ...base,
    title,
    alternates: { canonical: url },
    openGraph: { ...base.openGraph, title, url },
    twitter: { ...base.twitter, title },
  };
}

export default async function BlogsPage({ searchParams }: PageProps) {
  const page = parsePageParam((await searchParams).page);
  return (
    <>
      <PageBreadcrumbJsonLd path="/blogs" name="Insights" />
      <Blogs page={page} />
    </>
  );
}
