diff --git a/database/schema/schema.sql b/database/schema/schema.sql index 64c830a..95737d9 100644 --- a/database/schema/schema.sql +++ b/database/schema/schema.sql @@ -119,14 +119,6 @@ CREATE TABLE media_items ( kobo_metadata JSONB ); --- Create ebooks view for backward compatibility -CREATE VIEW ebooks AS -SELECT mi.* -FROM media_items mi -JOIN libraries l ON mi.library_id = l.id -JOIN library_types lt ON l.library_type_id = lt.id -WHERE lt.name = 'ebooks'; - -- Create reading_progress table CREATE TABLE reading_progress ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), @@ -158,15 +150,6 @@ CREATE TABLE reading_progress ( ); -- Create reading_progress view for backward compatibility -CREATE VIEW ebook_reading_progress AS -SELECT rp.*, - mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility -FROM reading_progress rp -JOIN media_items mi ON rp.media_item_id = mi.id -JOIN libraries l ON mi.library_id = l.id -JOIN library_types lt ON l.library_type_id = lt.id -WHERE lt.name = 'ebooks'; - -- Create media_ratings table (replaces ebook_ratings) CREATE TABLE media_ratings ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), @@ -337,35 +320,6 @@ CREATE TABLE reading_history ( created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); --- Create ebook_ratings view for backward compatibility -CREATE VIEW ebook_ratings AS -SELECT mr.*, - mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility -FROM media_ratings mr -JOIN media_items mi ON mr.media_item_id = mi.id -JOIN libraries l ON mi.library_id = l.id -JOIN library_types lt ON l.library_type_id = lt.id -WHERE lt.name = 'ebooks'; - --- Create ebook_notes view for backward compatibility -CREATE VIEW ebook_notes AS -SELECT mn.*, - mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility -FROM media_notes mn -JOIN media_items mi ON mn.media_item_id = mi.id -JOIN libraries l ON mi.library_id = l.id -JOIN library_types lt ON l.library_type_id = lt.id -WHERE lt.name = 'ebooks'; - --- Create ebook_highlights view for backward compatibility -CREATE VIEW ebook_highlights AS -SELECT mh.*, - mi.id as ebook_id -- Map media_item_id to ebook_id for compatibility -FROM media_highlights mh -JOIN media_items mi ON mh.media_item_id = mi.id -JOIN libraries l ON mi.library_id = l.id -JOIN library_types lt ON l.library_type_id = lt.id -WHERE lt.name = 'ebooks'; -- Create indexes for better query performance CREATE INDEX idx_users_email ON users(email); @@ -494,7 +448,7 @@ COMMENT ON COLUMN media_items.google_books_id IS 'Google Books identifier for in -- - Library visibility is controlled through library_visibility table - admins can hide/show libraries per user -- - Notes and highlights support position data (page:offset or CFI format) for precise location tracking -- - Highlights can have associated notes for detailed annotations --- - Backward compatibility views (ebooks, ebook_ratings, ebook_reading_progress, ebook_notes, ebook_highlights) maintain existing API contracts +-- NOTE: All backward compatibility views (ebooks, ebook_ratings, ebook_reading_progress, ebook_notes, ebook_highlights) have been removed -- ============================================ -- PERFORMANCE OPTIMIZATION (Phase 7)