import type { Metadata } from 'next'; import Link from 'next/link'; import { Alert } from '@/components/ui/alert'; import { Pagination } from '@/components/ui/pagination'; import { verifySession } from '@/lib/auth/dal'; import { fetchBoardPosts } from '@/lib/data/repositories/board-post-repository'; import { buildBoardPostHref, parseBoardPostQuery, } from '@/lib/domain/board-post-query'; import { BoardFilterBar } from '../_components/board-filter-bar'; import { BoardListToolbar } from '../_components/board-list-toolbar'; import { FaqTable } from './_components/faq-table'; export const metadata: Metadata = { title: 'FAQ', }; interface PageProps { searchParams: Promise>; } /** FAQ 목록 — 시안 A_BOA_014. 구조는 공지사항과 같고 컬럼·필터만 다르다. */ export default async function Page({ searchParams }: PageProps) { await verifySession(); const query = parseBoardPostQuery('faq', await searchParams); const { items, totalCount } = await fetchBoardPosts('faq', query); const totalPages = Math.max(1, Math.ceil(totalCount / query.pageSize)); const currentPage = Math.min(query.page, totalPages); return (

FAQ 목록

총 {totalCount}개 | 현재페이지 {currentPage}/{totalPages}

{items.length === 0 ? ( 확인 } > 다른 검색어로 다시 시도해 주세요. ) : ( <> buildBoardPostHref('faq', query, { page }) } /> )}
); }