import { cookies } from "next/headers";
import { HomePageClient } from "@/components/HomePageClient";
import { getTodayLocal, formatDateLocal } from "@/lib/env";

const BACKEND_URL = process.env.BACKEND_URL ?? "http://localhost:3001";

const WEEK_COOKIE = "tcWeek";

function getWeekStart(saved: string | undefined): string {
  if (saved && /^\d{4}-\d{2}-\d{2}$/.test(saved)) {
    const d = new Date(saved + "T00:00:00");
    if (!isNaN(d.getTime())) {
      d.setDate(d.getDate() - d.getDay());
      return formatDateLocal(d);
    }
  }
  const todayIso = getTodayLocal();
  const d = new Date(todayIso + "T00:00:00");
  d.setDate(d.getDate() - d.getDay());
  return formatDateLocal(d);
}

export default async function HomePage() {
  const saved = (await cookies()).get(WEEK_COOKIE)?.value;
  const weekStart = getWeekStart(saved);

  const data = await fetch(
    `${BACKEND_URL}/api/calendar/week?start=${weekStart}`,
    { next: { revalidate: 120 } },
  ).then((r) => r.json());

  return <HomePageClient {...data} />;
}
