docs: add book detail page implementation guide
Add comprehensive implementation guide for /media/:uuid book detail page. Features documented: - SSR-first template with Alpine.js for modals - Cover image (left) + metadata (right) layout - Reading progress tracking with conflict detection - Sync progress modal (comparison only, manual resolution via /conflicts) - Notes & highlights counter with placeholder modal - Collections display as clickable badges - External service links (Goodreads, Open Library, Google Books, Amazon) - Smart URL fallback: ID → ISBN → Title+Author search Technical approach: - Embeds database.MediaItems struct for zero duplication - Uses existing database queries (GetMediaItem, GetMediaRating, etc.) - Follows existing pattern: inline handlers in router/frontend.go - Keeps json tags in struct for API endpoint compatibility - Separate routes: /media/:uuid (HTML) vs /api/media-items/:id (JSON) Files to create: - internal/handlers/media_detail.go (data structure) - templates/book_detail.templ (SSR template) - templates/book_detail_modals.templ (modals) - web/src/book-detail.ts (Alpine.js integration) Files to modify: - internal/router/frontend.go (add route) - web/src/main.ts (import module) - templates/utils.go (helper functions) See BOOK_DETAIL_IMPLEMENTATION.md for complete implementation details.
This commit is contained in: