diff --git a/.cursor/.prompt/게시판 대분류작업.md b/.cursor/.prompt/게시판 대분류작업.md new file mode 100644 index 0000000..8c27aac --- /dev/null +++ b/.cursor/.prompt/게시판 대분류작업.md @@ -0,0 +1,43 @@ +### 목표 +- 게시판 대분류(상위 카테고리) 도입: 스키마, API, UI 반영 + +### 작업 목록 + +스키마/마이그레이션 +- [ ] 1.1 Prisma에 `BoardCategory` 모델 추가(id, name, slug, sortOrder, status) +- [ ] 1.2 `Board` 모델에 `categoryId` 필드와 relation 추가 +- [ ] 1.3 관련 인덱스/`@@map` 정의 업데이트 +- [ ] 1.4 마이그레이션 생성 및 적용(`npx prisma migrate dev`) +- [ ] 1.5 `prisma/seed.js`에 기본 카테고리와 매핑 데이터 추가 +- [ ] 1.6 ERD 재생성(`npx prisma generate`) + +API +- [ ] 2.1 Admin: 카테고리 CRUD 엔드포인트 추가(`src/app/api/admin/categories/route.ts`) +- [ ] 2.2 Admin: 게시판 생성/수정 요청에 `categoryId` 허용(`src/app/api/admin/boards/...`) +- [ ] 2.3 Public: 게시판 목록 조회에 `category` 포함 및 `?category` 필터 지원(`src/app/api/boards/route.ts`) +- [ ] 2.4 RBAC 검토: `ADMIN` 또는 `BOARD` 권한으로 카테고리 관리 허용 + +프론트엔드 +- [ ] 3.1 Admin 보드 관리 화면에 카테고리 선택(Select) 추가(`src/app/admin/boards/page.tsx`) +- [ ] 3.2 Admin 카테고리 관리 페이지/리스트/생성·수정 UI 추가(`src/app/admin/page.tsx` 또는 신규 경로) +- [ ] 3.3 메인/게시판 목록에 대분류 필터/탭 UI 추가(`src/app/boards/page.tsx` 등) +- [ ] 3.4 라우팅/쿼리 파라미터 연동(`?category=slug` 또는 `id`) + +클라이언트 라이브러리/검증 +- [ ] 4.1 `src/lib/api.ts`에 카테고리 API 클라이언트 추가 +- [ ] 4.2 `src/lib/queryKeys.ts`에 `categories` 키 추가 +- [ ] 4.3 폼 검증 스키마 업데이트(게시판 생성/수정에 `categoryId` 처리) + +데이터 마이그레이션/호환 +- [ ] 5.1 기존 게시판에 기본 카테고리 자동 지정 스크립트 작성 +- [ ] 5.2 배포 전 마이그레이션/시드 실행 체크리스트 작성 + +테스트/확인 +- [ ] 6.1 API 엔드투엔드 확인(생성/수정/조회/필터) +- [ ] 6.2 UI 스모크 테스트(카테고리 선택 및 필터 동작) +- [ ] 6.3 권한별 접근 제어 확인 + +문서 +- [ ] 7.1 `README.md`에 카테고리 모델/사용법/마이그레이션 절차 추가 + +