Speed up timeline load with portrait thumbs, bootstrap API, and caching.

Add catalog bootstrap endpoint, portrait thumbnail pipeline, lazy queued timeline images, gzip compression, and 3D texture throttling with code-split VirtualGallery.
This commit is contained in:
Danila Khodjaef
2026-07-06 14:27:29 +03:00
parent bdddadc4d6
commit 99b8559607
117 changed files with 646 additions and 171 deletions
+4
View File
@@ -0,0 +1,4 @@
-- Query performance for timeline filters and influence lookups
CREATE INDEX IF NOT EXISTS idx_artists_birth_year ON artists(birth_year);
CREATE INDEX IF NOT EXISTS idx_artists_death_year ON artists(death_year);
CREATE INDEX IF NOT EXISTS idx_influence_sources_source_painting ON painting_influence_sources(source_painting_id);
+2
View File
@@ -0,0 +1,2 @@
-- Timeline portrait thumbnails (~256px) under portraits/thumbs/
ALTER TABLE artists ADD COLUMN IF NOT EXISTS portrait_thumb_path TEXT;
+6
View File
@@ -32,6 +32,7 @@ CREATE TABLE IF NOT EXISTS artists (
death_year INTEGER,
movement_id INTEGER REFERENCES art_movements(id),
portrait_path VARCHAR(500),
portrait_thumb_path VARCHAR(500),
bio_short TEXT,
bio_full TEXT,
wikipedia_title VARCHAR(300),
@@ -121,6 +122,8 @@ CREATE TABLE IF NOT EXISTS painting_annotations (
);
CREATE INDEX IF NOT EXISTS idx_artists_movement ON artists(movement_id);
CREATE INDEX IF NOT EXISTS idx_artists_birth_year ON artists(birth_year);
CREATE INDEX IF NOT EXISTS idx_artists_death_year ON artists(death_year);
CREATE INDEX IF NOT EXISTS idx_artists_century ON artists(century);
CREATE INDEX IF NOT EXISTS artists_checkup_checked_idx ON artists (checkup_checked);
CREATE INDEX IF NOT EXISTS artists_checkup_fixed_idx ON artists (checkup_fixed);
@@ -149,6 +152,9 @@ CREATE UNIQUE INDEX IF NOT EXISTS painting_influence_sources_unique
CREATE INDEX IF NOT EXISTS painting_influence_sources_painting_idx
ON painting_influence_sources (painting_id);
CREATE INDEX IF NOT EXISTS idx_influence_sources_source_painting
ON painting_influence_sources (source_painting_id);
CREATE INDEX IF NOT EXISTS painting_influence_sources_artist_idx
ON painting_influence_sources (source_artist_id);