import { Table, TableBody, TableCell, TableHead, TableHeaderCell, TableRow, } from '@/components/ui/table'; import { formatBoardCategoryLabel, formatFaqTypeLabel, formatOptionalValue, formatVisibilityLabel, type BoardPost, } from '@/lib/domain/board-post'; import { BoardRowActions } from '../../_components/board-row-actions'; interface FaqTableProps { items: BoardPost[]; page: number; pageSize: number; totalCount: number; } const COLUMN_HEADERS = [ '번호', '구분', '유형', '제목', '작성자', '등록일', '사용여부', '관리', ]; /** * FAQ 목록 테이블 — 시안 A_BOA_014 ③. * * "유형"은 현재 항상 `-`다 — 백엔드에 유형 저장 필드가 아직 없어 조회 응답에 값이 없다 * (`board-post.ts`의 `BOARD_TYPE_CODE_PARAM` 주석). 열은 유지해 두었으므로 백엔드에 필드가 * 추가되면 Repository 매핑만 늘리면 그대로 채워진다. */ export function FaqTable({ items, page, pageSize, totalCount }: FaqTableProps) { const offset = (page - 1) * pageSize; return ( {COLUMN_HEADERS.map((header) => ( {header} ))} {items.map((post, index) => ( {totalCount - offset - index} {formatBoardCategoryLabel(post.categoryCode)} {formatFaqTypeLabel(post.typeCode)} {formatOptionalValue(post.title)} {formatOptionalValue(post.authorName)} {formatOptionalValue(post.createdAt)} {formatVisibilityLabel(post.isVisible)} ))}
); }