-- ============================================================ -- WS6: Создание курсов-носителей «Второй мозг для бизнеса» -- ============================================================ -- ВАЖНО: Выполнять НА ПРОДЕ только после проверки на staging. -- Запускать через SSH: psql -f create_biz_brain_courses.sql -- Идемпотентно: INSERT IGNORE по slug (уникальный ключ). -- -- Курсы-носители (5 штук): -- biz-brain-base — основной курс (ZIP хранилища + видео-онбординг) -- biz-brain-premium — премиум-раздел (консультации, инструкции по расширениям) -- module-caldav — расширение CalDAV-календарь -- module-ai-pdf — расширение AI-разбор PDF -- module-legacy — расширение Legacy-миграция -- ============================================================ BEGIN; -- Функция для генерации cuid-подобного ID (через gen_random_uuid как fallback) -- В реальности Prisma генерирует cuid автоматически — используем это свойство. -- Если у вас Postgres 14+: gen_random_uuid() дает UUID, но Prisma ожидает cuid. -- Безопаснее создать через Prisma API или LMS-Admin. -- Проверяем что slug ещё не существует перед вставкой DO $$ BEGIN -- biz-brain-base IF NOT EXISTS (SELECT 1 FROM "Course" WHERE slug = 'biz-brain-base') THEN INSERT INTO "Course" (id, slug, title, description, published, "allowAudio", "order", "createdAt", "updatedAt") VALUES ( 'clbizbrainbase0000001', 'biz-brain-base', 'Второй мозг для бизнеса — Базовый', 'Готовое хранилище Obsidian для собственника: CRM-воронка, финансовый кокпит, журнал решений, витрина команды. Разовый платёж, бессрочный доступ.', false, -- опубликовать вручную после наполнения контентом false, 100, NOW(), NOW() ); RAISE NOTICE 'Создан курс biz-brain-base'; ELSE RAISE NOTICE 'Курс biz-brain-base уже существует — пропуск'; END IF; -- biz-brain-premium IF NOT EXISTS (SELECT 1 FROM "Course" WHERE slug = 'biz-brain-premium') THEN INSERT INTO "Course" (id, slug, title, description, published, "allowAudio", "order", "createdAt", "updatedAt") VALUES ( 'clbizbrainprem0000002', 'biz-brain-premium', 'Второй мозг для бизнеса — Премиум (инструкции и консультации)', 'Раздел для премиум-покупателей: инструкции по установке расширений, запись на 2 персональные консультации, ответы на частые вопросы.', false, false, 101, NOW(), NOW() ); RAISE NOTICE 'Создан курс biz-brain-premium'; ELSE RAISE NOTICE 'Курс biz-brain-premium уже существует — пропуск'; END IF; -- module-caldav IF NOT EXISTS (SELECT 1 FROM "Course" WHERE slug = 'module-caldav') THEN INSERT INTO "Course" (id, slug, title, description, published, "allowAudio", "order", "createdAt", "updatedAt") VALUES ( 'clmodulecaldav00000003', 'module-caldav', 'Расширение: CalDAV-календарь', 'Двусторонняя синхронизация задач и событий Obsidian с Google Calendar / Apple Calendar через CalDAV. Плагин Full Calendar Remastered v0.13.2.', false, false, 200, NOW(), NOW() ); RAISE NOTICE 'Создан курс module-caldav'; ELSE RAISE NOTICE 'Курс module-caldav уже существует — пропуск'; END IF; -- module-ai-pdf IF NOT EXISTS (SELECT 1 FROM "Course" WHERE slug = 'module-ai-pdf') THEN INSERT INTO "Course" (id, slug, title, description, published, "allowAudio", "order", "createdAt", "updatedAt") VALUES ( 'clmoduleaipdf000000004', 'module-ai-pdf', 'Расширение: AI-разбор PDF и исследований', 'Промпты А1/А2/А3 для структурированного разбора PDF-документов, статей и исследований с помощью AI. Включает эталонный прогон и демо-PDF.', false, false, 201, NOW(), NOW() ); RAISE NOTICE 'Создан курс module-ai-pdf'; ELSE RAISE NOTICE 'Курс module-ai-pdf уже существует — пропуск'; END IF; -- module-legacy IF NOT EXISTS (SELECT 1 FROM "Course" WHERE slug = 'module-legacy') THEN INSERT INTO "Course" (id, slug, title, description, published, "allowAudio", "order", "createdAt", "updatedAt") VALUES ( 'clmodulelegacy00000005', 'module-legacy', 'Расширение: Legacy-миграция из Evernote / Notion', 'Пошаговые инструкции и чеклист пост-обработки для переноса данных из Evernote и Notion в хранилище «Второй мозг для бизнеса».', false, false, 202, NOW(), NOW() ); RAISE NOTICE 'Создан курс module-legacy'; ELSE RAISE NOTICE 'Курс module-legacy уже существует — пропуск'; END IF; END $$; COMMIT; -- Проверка результата SELECT slug, title, published, "order" FROM "Course" WHERE slug IN ('biz-brain-base', 'biz-brain-premium', 'module-caldav', 'module-ai-pdf', 'module-legacy') ORDER BY "order";