import YearlyAuctionLiveClient from "@/components/yearly/YearlyAuctionLiveClient";
import {
  getAuctionGroups,
  getGroupAuctionById,
  getGroupSingleAuctions,
  type GroupSingleAuctionsResponse,
} from "@/actions/group-auctions";
import { metaObject } from "@/config/site.config";
import { buildHorseFallbackRooms } from "@/lib/annualAuctionGroups";
import { getLocale, getTranslations } from "next-intl/server";

export async function generateMetadata({
  params,
}: {
  params: Promise<{ id: string; lang: string }>;
}) {
  const { id } = await params;
  await getLocale();
  const t = await getTranslations("ANNUAL_AUCTION_LIVE");
  let title = t("meta_title");

  try {
    const auction = await getGroupAuctionById(id);
    const auctionTitle = (auction as any)?.title;
    if (auctionTitle) {
      title = `${auctionTitle} - ${t("meta_live_suffix")}`;
    }
  } catch {
    // ignore metadata fetch errors
  }

  return metaObject(
    title,
    t("meta_description"),
    undefined,
    undefined,
    `/annual-auctions/${id}/live`,
  );
}

type Props = {
  params: Promise<{ id: string; lang: string }>;
};

export default async function AnnualAuctionLivePage({ params }: Props) {
  const { id } = await params;

  const auction = await getGroupAuctionById(id);
  const roomsRes = await getAuctionGroups(id);
  // const inner: GroupSingleAuctionsResponse = await getGroupSingleAuctions(id);
  // const innerItems = inner?.data?.data || [];
  const rooms = roomsRes?.data?.data || [];
  // const innerNextCursor = inner?.data?.meta?.next_cursor || null;
  const maxAllowedDay = Number((auction as any)?.max_allowed_day);
  const maxDays = Number.isFinite(maxAllowedDay)
    ? Math.max(0, maxAllowedDay - 1)
    : 0;

  const animalType = ((auction as any)?.animal_type || "horse").toString() as
    | "horse"
    | "camel";
  return (
    <YearlyAuctionLiveClient
      groupAuction={auction as any}
      initialRooms={rooms as any}
      // initialInnerAuctions={innerItems}
      // initialInnerNextCursor={innerNextCursor}
      videoUrl={auction?.videos?.[0]?.url || undefined}
      maxDays={maxDays}
      animalType={animalType}
    />
  );
}
