import { EstablishmentsList } from "@/features/reports/components/establishments/establishments-list"; import { HighlightsCards } from "@/features/reports/components/establishments/highlights-cards"; import { PeriodFilterButtons } from "@/features/reports/components/establishments/period-filter"; import { SummaryCards } from "@/features/reports/components/establishments/summary-cards"; import { TopCategories } from "@/features/reports/components/establishments/top-categories"; import { fetchTopEstablishmentsData, type PeriodFilter, } from "@/features/reports/establishments/queries"; import { Card } from "@/shared/components/ui/card"; import { getUser } from "@/shared/lib/auth/server"; import { parsePeriodParam } from "@/shared/utils/period"; type PageSearchParams = Promise>; type PageProps = { searchParams?: PageSearchParams; }; const getSingleParam = ( params: Record | undefined, key: string, ) => { const value = params?.[key]; if (!value) return null; return Array.isArray(value) ? (value[0] ?? null) : value; }; const validatePeriodFilter = (value: string | null): PeriodFilter => { if (value === "3" || value === "6" || value === "12") { return value; } return "6"; }; export default async function TopEstabelecimentosPage({ searchParams, }: PageProps) { const user = await getUser(); const resolvedSearchParams = searchParams ? await searchParams : undefined; const periodoParam = getSingleParam(resolvedSearchParams, "periodo"); const mesesParam = getSingleParam(resolvedSearchParams, "meses"); const { period: currentPeriod } = parsePeriodParam(periodoParam); const periodFilter = validatePeriodFilter(mesesParam); const data = await fetchTopEstablishmentsData( user.id, currentPeriod, periodFilter, ); return (
Selecione o intervalo de meses
); }