john-okeefe
|
542940c2ff
|
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.
|
2026-03-28 22:03:01 -04:00 |
|