import type { Metadata } from "next"; import { notFound } from "next/navigation"; import { PageHeader } from "@/components/page-header"; import { BudgetView } from "@/features/budgets/components/budget-view"; import { IncomePlanSection } from "@/features/budgets/components/income-plan"; import { getIncomePlan } from "@/features/budgets/plan"; import { getBudget } from "@/features/budgets/service"; import { tr } from "@/i18n/tr"; import { requireActiveHousehold } from "@/lib/dal"; import { budgetMonthSchema } from "@/shared/schemas/budget"; export const metadata: Metadata = { title: tr.budget.title }; /** /butce?ay=YYYY-MM — aylık bütçe (varsayılan: içinde bulunulan bütçe ayı). */ export default async function BudgetPage({ searchParams }: PageProps<"/butce">) { const { user, household } = await requireActiveHousehold("viewer"); const ay = budgetMonthSchema.safeParse((await searchParams).ay); const data = await getBudget(user.id, household.id, ay.success ? ay.data : undefined); if (!data) notFound(); const income = await getIncomePlan(user.id, household.id, data.month); if (!income) notFound(); const monthLabel = new Intl.DateTimeFormat("tr-TR", { month: "long", year: "numeric", timeZone: "Europe/Istanbul", }).format(new Date(`${data.month}-15T12:00:00+03:00`)); return ( <> ); }