import { SearchParams } from 'nuqs/server';
import PageContainer from '@/components/layout/page-container';
import { ReportsPageContent } from '@/features/reports/components/reports-page-content';
import {
  getReportsAccess,
  getReportsDataset,
  parseReportFilters
} from '@/features/reports/server/report-data';
import { requireEmployeeDashboardAccess } from '@/lib/auth/page-guards';

export const metadata = {
  title: 'แดชบอร์ด: รายงาน'
};

type PageProps = {
  searchParams: Promise<SearchParams>;
};

export default async function Page(props: PageProps) {
  await requireEmployeeDashboardAccess();

  const searchParams = await props.searchParams;
  const filters = parseReportFilters(searchParams);
  const access = await getReportsAccess();

  return (
    <PageContainer
      pageTitle='รายงาน'
      pageDescription='ดูรายงานการอบรมตามสิทธิ์ของผู้ใช้งาน พร้อมตัวกรองตามปี บริษัท และแผนก'
    >
      <ReportsPageContent data={await getReportsDataset(filters, access)} />
    </PageContainer>
  );
}
