feat: add highlights and notes annotation system
This major update implements a complete user annotation system: ## 🎯 New Features - User notes with position tracking for media items - Text highlighting with customizable colors - Highlight-note associations for detailed annotations - Full CRUD API for both notes and highlights - Backward compatibility with existing ebook endpoints ## 📊 Database Changes - Add media_notes table (id, media_item_id, user_id, content, position, timestamps) - Add media_highlights table (id, media_item_id, user_id, selection_text, start/end_position, color, optional note_id) - Add foreign key relationships with CASCADE deletes - Add proper indexes for performance - Add database schema views for ebook backward compatibility ## 🔧 API Implementation - Complete REST API endpoints for notes and highlights - JWT authentication with proper middleware bypass - Request validation with meaningful error responses - UUID validation and type safety - Support for hex color codes in highlights ## 🧪 Testing & Documentation - Comprehensive test suite covering authentication scenarios - Bruno API collection for manual testing - Detailed testing guide with troubleshooting - Updated documentation in README and TESTING.md ## 📁 Backward Compatibility - Existing ebook endpoints continue working - Database views maintain API contracts - No breaking changes for existing integrations The annotation system is now fully functional and ready for production use.
This commit is contained in:
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
@@ -0,0 +1,27 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id" version="2.0">
|
||||
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
|
||||
<dc:identifier opf:scheme="calibre" id="calibre_id">1278</dc:identifier>
|
||||
<dc:identifier opf:scheme="uuid" id="uuid_id">6e406f93-3499-4b1a-8a47-80b4cf3d2920</dc:identifier>
|
||||
<dc:title>Wuthering Heights</dc:title>
|
||||
<dc:creator opf:file-as="Brontë, Emily" opf:role="aut">Emily Brontë</dc:creator>
|
||||
<dc:contributor opf:file-as="calibre" opf:role="bkp">calibre (8.16.2) [https://calibre-ebook.com]</dc:contributor>
|
||||
<dc:date>1996-12-02T00:00:00+00:00</dc:date>
|
||||
<dc:language>eng</dc:language>
|
||||
<dc:subject>Revenge -- Fiction</dc:subject>
|
||||
<dc:subject>Psychological fiction</dc:subject>
|
||||
<dc:subject>Rejection (Psychology) -- Fiction</dc:subject>
|
||||
<dc:subject>Love stories</dc:subject>
|
||||
<dc:subject>Domestic fiction</dc:subject>
|
||||
<dc:subject>Yorkshire (England) -- Fiction</dc:subject>
|
||||
<dc:subject>Foundlings -- Fiction</dc:subject>
|
||||
<dc:subject>Rural families -- Fiction</dc:subject>
|
||||
<dc:subject>Heathcliff (Fictitious character : Brontë) -- Fiction</dc:subject>
|
||||
<dc:subject>Triangles (Interpersonal relations) -- Fiction</dc:subject>
|
||||
<meta name="calibre:timestamp" content="2026-01-26T18:33:43.337561+00:00"/>
|
||||
<meta name="calibre:title_sort" content="Wuthering Heights"/>
|
||||
</metadata>
|
||||
<guide>
|
||||
<reference type="cover" title="Cover" href="cover.jpg"/>
|
||||
</guide>
|
||||
</package>
|
||||
Reference in New Issue
Block a user