fb4897e256
PR-A backend 위에 사용자 UI:
[ReadCounter]
- frontend/src/lib/components/ReadCounter.svelte 신규
- "1회독 완료" 명시 클릭 → POST /read → 토스트
- 현재 N회독 / 마지막 읽음 (방금/N분 전/날짜) 표시
- ↩ 버튼 → DELETE /read/last → 마지막 1건 취소 (confirm)
- 자동 +1 ❌
[자료 detail]
- routes/documents/[id]/+page.svelte 우측 editor stack 상단에
ReadCounter 마운트 — category='library' 일 때만
- doc 응답의 read_count / last_read_at 으로 초기값 (추가 fetch 불필요)
[자료실 카드 회독 배지]
- DocumentCard.svelte 우측 메타에 텍스트 배지
안 봄 / 1회독 / 2회독 / N회독 — 색은 매우 약하게 (오해 방지)
- doc.category === 'library' 만
[안 본 자료만 필터]
- backend: /api/documents/library 에 unread bool 파라미터
Document.id NOT IN (현재 사용자 회독 doc_id) — scalar_subquery
- frontend: /library 페이지에 토글 버튼 (정렬 옆)
URL ?unread=true 동기화, activeUnread reactive