import { getTranslations } from "next-intl/server";
import { getGroupAuctions } from "@/actions/group-auctions";
import { getAuctionConfig } from "@/actions/config-mazad";
import AnnualAuctionsClient from "@/components/annaulMazad/AnnualAuctionsClient";
import { metaObject } from "@/config/site.config";
import { getLocale } from "next-intl/server";
import { mapGroupAuctionsToAnnualListCards } from "@/lib/annualAuctionsList/mapGroupAuctionsToClientCards";

export async function generateMetadata() {
  const locale = await getLocale();
  const tMeta = await getTranslations({
    locale,
    namespace: "ANNUAL_AUCTIONS_LIST_PAGE",
  });
  return metaObject(
    tMeta("meta_title"),
    tMeta("meta_description"),
    undefined,
    undefined,
    "/annual-auctions",
  );
}

const INITIAL_PER_PAGE = 20;

export default async function AuctionsPage() {
  const list = await getGroupAuctions({
    per_page: INITIAL_PER_PAGE,
    page: 1,
  });
  const [horseCfg, camelCfg] = await Promise.all([
    getAuctionConfig("horse"),
    getAuctionConfig("camel"),
  ]);
  const locale = await getLocale();
  const clientCards = await mapGroupAuctionsToAnnualListCards(
    list.items,
    locale,
  );

  return (
    <AnnualAuctionsClient
      cards={clientCards}
      initialPagination={list.pagination}
      usagesByAnimal={{
        horse: horseCfg?.usages ?? [],
        camel: camelCfg?.usages ?? [],
      }}
    />
  );
}
