Files
Learn_System/backend/src/db/migrations/036_backgrounds_premium.sql
T
Maxim Dolgolyov f6fbe922a9 feat(shop): 9 premium animated backgrounds
Doubles the bg catalogue from 10 to 19 with richer multi-layer
animations. Every keyframe pack is CSS-only and respects the existing
prefers-reduced-motion fallback.

  sunset       550   slow hue cycle through warm palette
  rain         650   2-layer vertical streaks at different speeds
  snow         700   3-layer drifting flakes pattern
  clouds       750   drifting white blobs on day sky (only LIGHT one)
  fireflies    800   pulsing glowing dots, opposing drift
  cyber-grid   850   neon grid scrolling down with vignette
  kaleidoscope 1000  two huge conic-gradients in opposite rotation
  ocean        1100  layered blobs drift like undulating waves
  aurora-dance 1500  multi-band aurora — new premium top-tier

Tonal classification mirrored in api.js DARK_BG_SLUGS so the veil
picks the right contrast: clouds is light, the other 8 join the dark
set (alongside dark, stars, aurora, nebula, grid).

Each background also gains a matching .bg-preview.bg-<slug> rule that
reuses the same animation at the shop's 90px swatch — WYSIWYG.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 21:35:59 +03:00

60 lines
4.1 KiB
SQL

-- ═══════════════════════════════════════════════════════════════
-- 036: 9 premium animated backgrounds
--
-- Builds on the 10 bg seed from migration 035 with a wave of richer,
-- multi-layer animations: weather (rain, snow, clouds), atmospheric
-- (sunset, fireflies), and stylized (aurora-dance, ocean, kaleidoscope,
-- cyber-grid). All CSS-only with prefers-reduced-motion fallbacks.
--
-- Price ladder: 550 → 1500, slotting just above the existing 'aurora'
-- (900) and 'nebula' (1200) so the new top-tier 'aurora-dance' becomes
-- the most aspirational unlock at 1500 coins.
--
-- Re-runnable: each row gated by WHERE NOT EXISTS (name, type).
-- ═══════════════════════════════════════════════════════════════
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Закат', 'Медленно меняющая цвет вечерняя палитра', 'background', 'cosmetic', 550,
'{"slug":"sunset"}', 'sunset', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Закат' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Дождь', 'Быстрые вертикальные капли на тёмном небе', 'background', 'cosmetic', 650,
'{"slug":"rain"}', 'cloud-rain', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Дождь' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Снегопад', 'Медленно падающие снежинки в два слоя', 'background', 'cosmetic', 700,
'{"slug":"snow"}', 'snowflake', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Снегопад' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Облака', 'Плывущие облака на дневном небе', 'background', 'cosmetic', 750,
'{"slug":"clouds"}', 'cloud', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Облака' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Светлячки', 'Тёплые огоньки пульсируют и блуждают', 'background', 'cosmetic', 800,
'{"slug":"fireflies"}', 'lightbulb', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Светлячки' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Кибер-сетка', 'Светящаяся неоновая сетка с разверткой', 'background', 'cosmetic', 850,
'{"slug":"cyber-grid"}', 'cpu', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Кибер-сетка' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Калейдоскоп', 'Два встречных вращения цветовых вихрей', 'background', 'cosmetic', 1000,
'{"slug":"kaleidoscope"}', 'rotate-3d', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Калейдоскоп' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Океан', 'Глубокие волны цвета у горизонта', 'background', 'cosmetic', 1100,
'{"slug":"ocean"}', 'waves', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Океан' AND type='background');
INSERT INTO shop_items (name, description, type, category, price, data, icon, is_active)
SELECT 'Танец сияния', 'Многослойное северное сияние с волнами и блюром', 'background', 'cosmetic', 1500,
'{"slug":"aurora-dance"}', 'wand-sparkles', 1
WHERE NOT EXISTS (SELECT 1 FROM shop_items WHERE name='Танец сияния' AND type='background');