b022c1c3b0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import type { Metadata } from "next";
|
||
import { notFound } from "next/navigation";
|
||
import { AssetDetailView } from "@/features/assets/components/asset-detail-view";
|
||
import { PeriodReportView } from "@/features/assets/components/period-report";
|
||
import {
|
||
getAsset,
|
||
getPeriodReport,
|
||
REPORT_RANGES,
|
||
type ReportRange,
|
||
} from "@/features/assets/service";
|
||
import { tr } from "@/i18n/tr";
|
||
import { requireActiveHousehold } from "@/lib/dal";
|
||
|
||
export const metadata: Metadata = { title: tr.assets.history };
|
||
|
||
/** /birikim/:id — varlık hareketleri ve dönemsel rapor (gizli varlık yalnızca sahibine; aksi 404). */
|
||
export default async function AssetPage({ params, searchParams }: PageProps<"/birikim/[id]">) {
|
||
const { user, household } = await requireActiveHousehold("viewer");
|
||
const { id } = await params;
|
||
const donem = (await searchParams).donem;
|
||
const range: ReportRange = REPORT_RANGES.includes(donem as ReportRange)
|
||
? (donem as ReportRange)
|
||
: "6";
|
||
const [data, report] = await Promise.all([
|
||
getAsset(user.id, household.id, id),
|
||
getPeriodReport(user.id, household.id, range, id),
|
||
]);
|
||
if (!data || !report) notFound();
|
||
return (
|
||
<AssetDetailView
|
||
key={id}
|
||
data={data}
|
||
report={<PeriodReportView report={report} range={range} basePath={`/birikim/${id}`} />}
|
||
/>
|
||
);
|
||
}
|