add seed
This commit is contained in:
parent
551a73001e
commit
22ab359c9e
@ -19,7 +19,8 @@
|
||||
"test:e2e": "jest --config ./test/jest-e2e.json",
|
||||
"db:push": "prisma db push",
|
||||
"db:view": "prisma studio",
|
||||
"db:generate": "prisma generate"
|
||||
"db:generate": "prisma generate",
|
||||
"db:seed": "ts-node src/core/prisma/prisma.seed.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/server": "^4.12.2",
|
||||
|
||||
128
backend/src/core/prisma/data/categories.data.ts
Normal file
128
backend/src/core/prisma/data/categories.data.ts
Normal file
@ -0,0 +1,128 @@
|
||||
export const CATEGORIES = [
|
||||
{
|
||||
title: 'Minecraft',
|
||||
slug: 'minecraft',
|
||||
description:
|
||||
'Погрузитесь в бескрайний мир творчества и приключений в Minecraft! Эта категория посвящена самой популярной песочнице, где вы можете строить, исследовать и выживать в уникальных мирах. Следите за стримами, вдохновляйтесь креативными постройками, участвуйте в совместных проектах и делитесь своими достижениями. Присоединяйтесь к сообществу, где фантазия не знает границ, и откройте для себя безумные возможности, которые предлагает Minecraft!',
|
||||
thumbnailUrl: '/categories/minecraft.webp',
|
||||
},
|
||||
{
|
||||
title: 'Grand Theft Auto V',
|
||||
slug: 'grand-theft-auto-v',
|
||||
description:
|
||||
'Добро пожаловать в криминальный мир Лос-Сантоса! Эта категория посвящена одной из самых популярных игр в открытом мире, где вы можете свободно исследовать, выполнять миссии и наслаждаться безумными приключениями. Следите за стримами, участвуйте в захватывающих гонках и ограблениях, обсуждайте стратегии и делитесь своими уникальными моментами из игры. Присоединяйтесь к сообществу, где каждый найдет себе занятие — от уличных гонок до создания собственных историй в рамках GTA V!',
|
||||
thumbnailUrl: '/categories/grand-theft-auto-v.webp',
|
||||
},
|
||||
{
|
||||
title: 'Rust',
|
||||
slug: 'rust',
|
||||
description:
|
||||
'Добро пожаловать в суровый и захватывающий мир Rust! Эта категория посвящена одной из самых популярных игр на выживание, где стратегии и навыки играют ключевую роль. Следите за стримами, наблюдайте за построением баз, захватывающими боями и захватами ресурсов. Делитесь своими тактиками, обсуждайте обновления и находите единомышленников, готовых бросить вызов этому жестокому миру. Присоединяйтесь к нам, чтобы научиться выживать и процветать в условиях жестокой конкуренции!',
|
||||
thumbnailUrl: '/categories/rust.webp',
|
||||
},
|
||||
{
|
||||
title: 'Cyberpunk 2077',
|
||||
slug: 'cyberpunk-2077',
|
||||
description:
|
||||
'Добро пожаловать в мрачный и захватывающий мир Night City! Эта категория посвящена Cyberpunk 2077, где вы сможете погрузиться в атмосферу будущего, полного технологий, приключений и сложных выборов. Следите за стримами, обсуждайте квесты и сюжетные линии, а также делитесь своими тактиками и опытом в этой уникальной RPG. Присоединяйтесь к сообществу, где каждый может исследовать мир киберпанка и раскрывать его тайны, становясь частью этой невероятной истории!',
|
||||
thumbnailUrl: '/categories/cyberpunk-2077.webp',
|
||||
},
|
||||
{
|
||||
title: 'Общение',
|
||||
slug: 'just-chatting',
|
||||
description:
|
||||
'Погружайтесь в мир живых дискуссий и общения! Эта категория предлагает вам уникальную возможность обмениваться мнениями, участвовать в увлекательных беседах и находить единомышленников. Делитесь своими мыслями, задавайте вопросы и получайте ответы в реальном времени. Присоединяйтесь к стримам, где каждый может высказать свое мнение и стать частью дружелюбного сообщества!',
|
||||
thumbnailUrl: '/categories/just-chatting.webp',
|
||||
},
|
||||
{
|
||||
title: 'Red Dead Redemption 2',
|
||||
slug: 'red-dead-redemption-2',
|
||||
description:
|
||||
'Погрузитесь в атмосферу Дикого Запада с одним из самых захватывающих приключений в истории игр! Эта категория посвящена Red Dead Redemption 2, где вы сможете следить за эпическими историями, исследовать живописные ландшафты и участвовать в увлекательных стримах. Обсуждайте стратегии, делитесь моментами из игры и находите единомышленников, разделяющих вашу страсть к этому культовому произведению. Присоединяйтесь к нам и откройте для себя мир, полный приключений, свободы и духа ковбойской жизни!',
|
||||
thumbnailUrl: '/categories/red-dead-redemption-2.webp',
|
||||
},
|
||||
{
|
||||
title: 'Обучение',
|
||||
slug: 'learning',
|
||||
description:
|
||||
'Расширьте свои знания и навыки в этой категории, посвященной обучению! Здесь вы найдете стримы и курсы по разнообразным темам — от искусства и музыки до языков и личной продуктивности. Участвуйте в интерактивных уроках, задавайте вопросы и получайте советы от опытных наставников. Обучение стало еще более доступным и увлекательным! Присоединяйтесь к сообществу стремящихся к самосовершенствованию и откройте новые горизонты для своего развития!',
|
||||
thumbnailUrl: '/categories/learning.webp',
|
||||
},
|
||||
{
|
||||
title: 'Fortnite',
|
||||
slug: 'fortnite',
|
||||
description:
|
||||
'Погрузитесь в яркий и динамичный мир Fortnite! Эта категория посвящена культовой игре, где строительство, стратегия и сражения с противниками сочетаются в одном захватывающем процессе. Следите за стримами, наблюдайте за матчами с участием лучших игроков и учитесь у них уникальным тактикам. Делитесь своими достижениями, обсуждайте новые обновления и находите единомышленников для совместной игры. Присоединяйтесь к нашему сообществу и станьте частью эпических сражений на острове Fortnite!',
|
||||
thumbnailUrl: '/categories/fortnite.webp',
|
||||
},
|
||||
{
|
||||
title: 'Counter-Strike',
|
||||
slug: 'counter-strike',
|
||||
description:
|
||||
'Добро пожаловать в мир напряженных сражений и стратегического геймплея! Эта категория посвящена популярной игре Counter-Strike, где вы сможете наблюдать захватывающие матчи, учиться у лучших игроков и делиться своими тактиками. Присоединяйтесь к стримам, обсуждайте последние обновления и соревнуйтесь с другими игроками. Будьте в курсе самых ярких моментов и станьте частью увлекательной киберспортивной культуры!',
|
||||
thumbnailUrl: '/categories/counter-strike.webp',
|
||||
},
|
||||
{
|
||||
title: 'Программирование',
|
||||
slug: 'programming',
|
||||
description:
|
||||
'Откройте для себя увлекательный мир кода и технологий! Эта категория посвящена программированию, где вы можете учиться, делиться опытом и вдохновляться новыми идеями. Следите за стримами, посвященными различным языкам программирования, инструментам и разработке проектов. Участвуйте в обсуждениях, задавайте вопросы и получайте советы от опытных разработчиков. Присоединяйтесь к сообществу, где код становится искусством, и каждая строчка — шаг к вашему следующему достижению!',
|
||||
thumbnailUrl: '/categories/programming.webp',
|
||||
},
|
||||
{
|
||||
title: 'Dota 2',
|
||||
slug: 'dota-2',
|
||||
description:
|
||||
'Погрузитесь в мир стратегических сражений и командной игры с Dota 2! Эта категория предназначена для всех поклонников культовой MOBA, где вы сможете следить за увлекательными матчами, изучать стратегии и делиться опытом с другими игроками. Присоединяйтесь к стримам, обсуждайте последние обновления и тактики, а также находите единомышленников для совместной игры. Откройте для себя захватывающий мир героев, навыков и командных сражений, где каждое решение может изменить ход битвы!',
|
||||
thumbnailUrl: '/categories/dota-2.webp',
|
||||
},
|
||||
{
|
||||
title: 'Brawl Stars',
|
||||
slug: 'brawl-stars',
|
||||
description:
|
||||
'Погрузитесь в динамичные сражения и быструю тактику в мире Brawl Stars! Эта категория создана для всех фанатов увлекательных битв 3 на 3 и эпических боев в режиме "Королевская битва". Здесь вы сможете смотреть лучшие стримы, обсуждать стратегии и разрабатывать новые тактики для своих бойцов. Присоединяйтесь к сообществу игроков, следите за последними обновлениями, открывайте новых персонажей и прокачивайте их способности. Каждый бой — это новый вызов, где командная работа и мастерство определяют победителя!',
|
||||
thumbnailUrl: '/categories/brawl-stars.webp',
|
||||
},
|
||||
{
|
||||
title: 'Clash Royale',
|
||||
slug: 'clash-royale',
|
||||
description:
|
||||
'Погрузитесь в захватывающий мир Clash Royale, где стратегия и мгновенные решения определяют исход сражений! Эта категория предназначена для всех поклонников карточных баталий, где вы сможете наблюдать за увлекательными турнирами, изучать успешные колоды и делиться опытом с другими игроками. Присоединяйтесь к стримам, обсуждайте последние обновления и тактики, открывайте новые карты и улучшайте свои любимые карты до максимума. Исследуйте бесконечные возможности для создания уникальных стратегий и сражайтесь с противниками, чтобы стать мастером арены!',
|
||||
thumbnailUrl: '/categories/clash-royale.webp',
|
||||
},
|
||||
{
|
||||
title: 'Музыка',
|
||||
slug: 'music',
|
||||
description:
|
||||
'Погрузитесь в мир музыки, где каждый аккорд и ритм наполняют атмосферу вдохновением и эмоциями! Эта категория предназначена для всех меломанов и музыкантов, где вы сможете наслаждаться живыми выступлениями, открывать новые жанры и делиться своим опытом с единомышленниками. Присоединяйтесь к стримам, обсуждайте последние релизы и события музыкальной индустрии, а также делитесь своими творениями и играми. Откройте для себя удивительный мир звуков, где каждое выступление — это уникальная история, которая ждет своего слушателя!',
|
||||
thumbnailUrl: '/categories/music.webp',
|
||||
},
|
||||
{
|
||||
title: 'Call of Duty',
|
||||
slug: 'call-of-duty',
|
||||
description:
|
||||
'Погрузитесь в мир захватывающих военных операций и командных сражений с Call of Duty! Эта категория создана для всех фанатов легендарной франшизы, где вы сможете наблюдать за напряжёнными матчами, изучать тактики и делиться своим опытом с другими игроками. Присоединяйтесь к стримам, обсуждайте последние обновления и новшества, а также находите союзников для совместной игры в различных режимах. Исследуйте динамичные карты, осваивайте уникальное оружие и тактики, где каждое ваше решение может стать ключом к победе в этом эпическом боевом мире!',
|
||||
thumbnailUrl: '/categories/call-of-duty.webp',
|
||||
},
|
||||
{
|
||||
title: 'World of Tanks',
|
||||
slug: 'world-of-tanks',
|
||||
description:
|
||||
'Погрузитесь в мир бронированных сражений и стратегической тактики с World of Tanks! Эта категория предназначена для всех поклонников легендарной танковой битвы, где вы сможете наблюдать за захватывающими матчами, изучать особенности различных танков и делиться опытом с единомышленниками. Присоединяйтесь к стримам, обсуждайте последние обновления и балансировку, а также находите товарищей по команде для совместной игры в различных режимах. Откройте для себя увлекательные сражения на разнообразных картах, прокачивайте свою армию и развивайте стратегические навыки, где каждое ваше решение может изменить ход боя!',
|
||||
thumbnailUrl: '/categories/world-of-tanks.webp',
|
||||
},
|
||||
{
|
||||
title: 'League of Legends',
|
||||
slug: 'league-of-legends',
|
||||
description:
|
||||
'Погрузитесь в мир эпических сражений и стратегического геймплея с League of Legends! Эта категория создана для всех поклонников культовой MOBA, где вы сможете следить за захватывающими матчами, изучать стратегии и делиться опытом с другими игроками. Присоединяйтесь к стримам, обсуждайте последние обновления и патчи, а также находите единомышленников для совместной игры. Откройте для себя множество уникальных чемпионов, исследуйте их способности и развивайте свои навыки, чтобы стать мастером поля боя. Каждая игра — это новый вызов, где командная работа и умение адаптироваться к ситуации определяют победу!',
|
||||
thumbnailUrl: '/categories/league-of-legends.webp',
|
||||
},
|
||||
{
|
||||
title: 'Спорт',
|
||||
slug: 'sport',
|
||||
description:
|
||||
'Погрузитесь в захватывающий мир спорта, где страсть, соревнование и дух командной игры сливаются воедино! Эта категория предназначена для всех поклонников активного образа жизни и спортивных событий, где вы сможете следить за увлекательными матчами, обсуждать стратегии команд и делиться своим опытом с другими фанатами. Присоединяйтесь к стримам, следите за последними новостями и результатами, а также находите единомышленников для совместных тренировок и обсуждений. Откройте для себя удивительный мир спорта, где каждое соревнование — это возможность проявить свои силы и стремление к победе!',
|
||||
thumbnailUrl: '/categories/sport.webp',
|
||||
},
|
||||
]
|
||||
218
backend/src/core/prisma/data/streams.data.ts
Normal file
218
backend/src/core/prisma/data/streams.data.ts
Normal file
@ -0,0 +1,218 @@
|
||||
export const STREAMS = {
|
||||
'minecraft': [
|
||||
'Проходим Minecraft: выживание с нуля!',
|
||||
'Строим эпические постройки в Minecraft',
|
||||
'Тайны Майнкрафт: приключения начинаются!',
|
||||
'Создаем ферму в Minecraft',
|
||||
'Убиваем Дракона Края!',
|
||||
'Исследуем подземелья Minecraft',
|
||||
'Магические зелья и чары в Minecraft',
|
||||
'Автоматизируем добычу ресурсов в Minecraft',
|
||||
'Рыбалка и охота в Minecraft: собираем лут',
|
||||
'Крафтим уникальные предметы в Minecraft',
|
||||
],
|
||||
'grand-theft-auto-v': [
|
||||
'Проходим GTA 5 на 100%',
|
||||
'Гонки и трюки в GTA Online',
|
||||
'Сюжетка GTA 5: снова в деле!',
|
||||
'Ограбления в GTA V: делаем дело',
|
||||
'Веселимся в Лос-Сантосе',
|
||||
'Открываем секретные локации в GTA 5',
|
||||
'Играем в миссии "Контракт" в GTA Online',
|
||||
'Миссии против полиции в GTA 5',
|
||||
'Обзор новых машин и тюнинга в GTA Online',
|
||||
'Создаем свой бизнес в Лос-Сантосе',
|
||||
],
|
||||
'rust': [
|
||||
'Рейдим базы в Rust',
|
||||
'Выживание в пустоши: Rust',
|
||||
'Новые механики Rust: тестируем!',
|
||||
'От новичка до про в Rust',
|
||||
'ПвП битвы в мире Rust',
|
||||
'Готовим рейды в Rust: тактики и стратегии',
|
||||
'Ловушки и оборонительные сооружения в Rust',
|
||||
'Ищем редкие ресурсы в Rust',
|
||||
'Исследуем огромные карты Rust',
|
||||
'Выживаем в жестоких условиях Rust',
|
||||
],
|
||||
'cyberpunk-2077': [
|
||||
'Исследуем Найт-Сити в Cyberpunk 2077',
|
||||
'Проходим сюжетные квесты Cyberpunk',
|
||||
'Моддинг и кастомизация в Cyberpunk',
|
||||
'Оружие и хаки: боевые тактики Cyberpunk',
|
||||
'Агентские миссии в мире будущего',
|
||||
'Киберимпланты: улучшаем персонажа',
|
||||
'Исследуем мир корпоративных заговоров',
|
||||
'Миссии с быстрыми сетевыми атаками',
|
||||
'Делаем побочные квесты Cyberpunk 2077',
|
||||
'Обзор обновлений и дополнений к игре',
|
||||
],
|
||||
'just-chatting': [
|
||||
'Общаемся с подписчиками!',
|
||||
'Ответы на вопросы: задавайте любые!',
|
||||
'Чилл-стрим: болтаем обо всем',
|
||||
'Ваши истории, наши обсуждения',
|
||||
'Уютные разговоры и новости',
|
||||
'Обсуждаем последние фильмы и сериалы',
|
||||
'Музыкальные рекомендации от зрителей',
|
||||
'Ваши вопросы, наши ответы!',
|
||||
'Рассуждаем о будущем технологий',
|
||||
'Тренды в игровой индустрии: обсуждаем',
|
||||
],
|
||||
'red-dead-redemption-2': [
|
||||
'Приключения в мире Red Dead Redemption 2',
|
||||
'Проходим сюжет RDR2: Дикий Запад зовет',
|
||||
'Охота и выживание в RDR2',
|
||||
'Исследуем дикие земли RDR2',
|
||||
'Лучшие миссии в Red Dead Redemption 2',
|
||||
'Рейдим бандитские укрытия в RDR2',
|
||||
'Путешествуем по миру Дикого Запада',
|
||||
'Торговля и добыча ресурсов в RDR2',
|
||||
'Становимся охотниками за головами в RDR2',
|
||||
'Обзор легендарных зверей и трофеев',
|
||||
],
|
||||
'learning': [
|
||||
'Изучаем основы фотографии',
|
||||
'Как стать мастером ораторского искусства',
|
||||
'Погружаемся в искусство рисования',
|
||||
'Как правильно учить иностранные языки',
|
||||
'Тайм-менеджмент для продуктивной жизни',
|
||||
'Разбираемся в психологии общения',
|
||||
'Основы игры на гитаре для начинающих',
|
||||
'Техники быстрого чтения и запоминания',
|
||||
'Изучаем основы кулинарии: готовим вместе',
|
||||
'Учим основы финансовой грамотности',
|
||||
],
|
||||
'fortnite': [
|
||||
'Стрим по Fortnite: королевская битва!',
|
||||
'Секреты строительства в Fortnite',
|
||||
'Лучшие тактики для победы в Fortnite',
|
||||
'Сезонные события в Fortnite: участвуем!',
|
||||
'Играем в дуо и сквады в Fortnite',
|
||||
'Открываем новые скины в Fortnite',
|
||||
'Как получить победу в Fortnite',
|
||||
'Челленджи Fortnite: выполняем!',
|
||||
'Обзор нового боевого пропуска Fortnite',
|
||||
'Тренируемся в строительстве и стрельбе',
|
||||
],
|
||||
'counter-strike': [
|
||||
'Герои Counter-Strike: стратегия и тактика',
|
||||
'Лучшие моменты в CS:GO',
|
||||
'Участвуем в турнирах по CS:GO',
|
||||
'Обзор карт в Counter-Strike',
|
||||
'ПвП бои в Counter-Strike',
|
||||
'Оружие и амуниция в CS: выбираем лучшее',
|
||||
'Тактики для победы в матчах CS:GO',
|
||||
'Соревновательные игры: учимся побеждать',
|
||||
'Киберспортивные команды: следим за матчами',
|
||||
'Участвуем в тренировочных матчах CS:GO',
|
||||
],
|
||||
'programming': [
|
||||
'Программируем на JavaScript: от простого к сложному',
|
||||
'Разработка игр на Python: шаг за шагом',
|
||||
'Создание веб-приложений с React: практическое руководство',
|
||||
'Учимся разрабатывать мобильные приложения',
|
||||
'Разбираем алгоритмы и структуры данных',
|
||||
'Работа с API в современных приложениях',
|
||||
'Тестирование кода: что нужно знать',
|
||||
'Автоматизация процессов разработки',
|
||||
'Секреты эффективного дебага',
|
||||
'Обзор современных фреймворков для веба',
|
||||
],
|
||||
'dota-2': [
|
||||
'Проходим Dota 2: секреты победы',
|
||||
'Обзор героев Dota 2: выбираем свою стратегию',
|
||||
'Готовимся к турниру по Dota 2',
|
||||
'Анализ лучших матчей Dota 2',
|
||||
'Советы по улучшению игры в Dota 2',
|
||||
'Герои поддержки: как правильно играть?',
|
||||
'Секреты макроигры в Dota 2',
|
||||
'Контроль карты и роуминг в Dota 2',
|
||||
'Играем за керри: выигрываем матчи',
|
||||
'Секреты победы в командных боях',
|
||||
],
|
||||
'brawl-stars': [
|
||||
'Стримим Brawl Stars: лучшие бравлеры!',
|
||||
'Советы по игре в Brawl Stars',
|
||||
'Участвуем в событиях Brawl Stars',
|
||||
'Новые режимы в Brawl Stars: тестируем!',
|
||||
'Обсуждаем стратегии для Brawl Stars',
|
||||
'Как выбрать лучшего бравлера для каждого режима',
|
||||
'Играем дуо и командами в Brawl Stars',
|
||||
'Проходим сезонные события в Brawl Stars',
|
||||
'Открываем новые скины и награды',
|
||||
'Секреты прокачки бравлеров',
|
||||
],
|
||||
'clash-royale': [
|
||||
'Битвы в Clash Royale: стратегии и тактики',
|
||||
'Проходим турниры Clash Royale',
|
||||
'Обзор карт в Clash Royale',
|
||||
'Достигаем новых высот в Clash Royale',
|
||||
'Секреты успешной игры в Clash Royale',
|
||||
'Создаем колоды для побед в Clash Royale',
|
||||
'Обзор новых карт и механик Clash Royale',
|
||||
'Лучшие моменты турниров по Clash Royale',
|
||||
'Стримим клановые битвы в Clash Royale',
|
||||
'Побеждаем в дуэлях и соревнованиях',
|
||||
],
|
||||
'music': [
|
||||
'Музыкальные новинки: обсуждаем хиты!',
|
||||
'Слушаем и обсуждаем любимые альбомы',
|
||||
'Обсуждаем музыкальные жанры: что слушать?',
|
||||
'Создаем музыку вместе!',
|
||||
'Музыкальные челленджи: участвуйте!',
|
||||
'Обзор музыкальных инструментов: выбираем свой',
|
||||
'Изучаем музыкальные тренды 2024 года',
|
||||
'Музыкальные реакции: слушаем вместе',
|
||||
'Чилл-аут стрим: слушаем расслабляющую музыку',
|
||||
'Интерактивный плейлист: выбирайте треки',
|
||||
],
|
||||
'call-of-duty': [
|
||||
'Готовимся к битве в Call of Duty',
|
||||
'Сюжетные миссии Call of Duty: проходим вместе',
|
||||
'Лучшие моменты из Call of Duty',
|
||||
'Обзор новых карт в Call of Duty',
|
||||
'Мультиплеер в Call of Duty: советы и тактики',
|
||||
'Создаем кланы и участвуем в битвах в Call of Duty',
|
||||
'Настраиваем оружие для максимальной эффективности',
|
||||
'Секреты игры в Call of Duty: как быть лидером',
|
||||
'Проходим режим зомби в Call of Duty',
|
||||
'Обзор нового боевого пропуска Call of Duty',
|
||||
],
|
||||
'world-of-tanks': [
|
||||
'Битвы в World of Tanks: тактики и стратегии',
|
||||
'Лучшие танки в World of Tanks',
|
||||
'Проходим квесты в World of Tanks',
|
||||
'Обзор обновлений в World of Tanks',
|
||||
'Стримим бои в World of Tanks',
|
||||
'ПвП сражения: учимся побеждать',
|
||||
'Создаем свою команду для турниров WoT',
|
||||
'Настройки танков для лучшей игры',
|
||||
'Открываем редкие танки и достижения',
|
||||
'Секреты захвата ключевых точек в боях',
|
||||
],
|
||||
'league-of-legends': [
|
||||
'Герои League of Legends: изучаем стратегии',
|
||||
'Обзор новых обновлений в LoL',
|
||||
'Соревнуемся в League of Legends',
|
||||
'Советы по игре в League of Legends',
|
||||
'Турниры и чемпионаты League of Legends',
|
||||
'Играем за поддержку: как быть лучшим?',
|
||||
'Секреты макроигры в League of Legends',
|
||||
'Лучшая тактика для командной игры в LoL',
|
||||
'Проходим ранговые игры в League of Legends',
|
||||
'Обзор новых скинов и событий в League of Legends',
|
||||
],
|
||||
'sport': [
|
||||
'Обсуждаем спортивные события: последние новости!',
|
||||
'Спортивные тренировки: секреты успеха',
|
||||
'Лучшие моменты в мире спорта',
|
||||
'Спортивные челленджи: участвуйте!',
|
||||
'Обзор спортивных игр и событий',
|
||||
'Поддерживаем себя в форме: советы и лайфхаки',
|
||||
'Секреты успешных спортсменов: что важно знать?',
|
||||
'Обсуждаем тактики и стратегии для командных видов спорта',
|
||||
'Реакции на последние спортивные трансляции',
|
||||
'Участвуем в спортивных турнирах и соревнованиях',
|
||||
],
|
||||
}
|
||||
104
backend/src/core/prisma/data/users.data.ts
Normal file
104
backend/src/core/prisma/data/users.data.ts
Normal file
@ -0,0 +1,104 @@
|
||||
export const USERNAMES = [
|
||||
'teacoder',
|
||||
'stintik',
|
||||
'alex',
|
||||
'bella',
|
||||
'carter',
|
||||
'dylan',
|
||||
'ethan',
|
||||
'fiona',
|
||||
'grace',
|
||||
'henry',
|
||||
'isabella',
|
||||
'jackson',
|
||||
'kate',
|
||||
'liam',
|
||||
'mia',
|
||||
'noah',
|
||||
'oliver',
|
||||
'paige',
|
||||
'quinn',
|
||||
'ryan',
|
||||
'sophia',
|
||||
'thomas',
|
||||
'ursula',
|
||||
'victor',
|
||||
'willow',
|
||||
'xander',
|
||||
'yara',
|
||||
'zoe',
|
||||
'adrian',
|
||||
'bella',
|
||||
'caroline',
|
||||
'daniel',
|
||||
'elena',
|
||||
'felix',
|
||||
'gabriel',
|
||||
'hannah',
|
||||
'ian',
|
||||
'julia',
|
||||
'kevin',
|
||||
'lily',
|
||||
'michael',
|
||||
'nina',
|
||||
'oscar',
|
||||
'peter',
|
||||
'quincy',
|
||||
'rachel',
|
||||
'samuel',
|
||||
'taylor',
|
||||
'ulysses',
|
||||
'vanessa',
|
||||
'wyatt',
|
||||
'xenia',
|
||||
'yuri',
|
||||
'zoey',
|
||||
'amelia',
|
||||
'benjamin',
|
||||
'charlotte',
|
||||
'david',
|
||||
'emma',
|
||||
'frederick',
|
||||
'georgia',
|
||||
'harper',
|
||||
'isaac',
|
||||
'joseph',
|
||||
'katie',
|
||||
'lucas',
|
||||
'madison',
|
||||
'nathan',
|
||||
'olivia',
|
||||
'patrick',
|
||||
'quincy',
|
||||
'rebecca',
|
||||
'sebastian',
|
||||
'tiffany',
|
||||
'ulyana',
|
||||
'victoria',
|
||||
'wesley',
|
||||
'xavier',
|
||||
'yasmin',
|
||||
'zoella',
|
||||
'aaron',
|
||||
'brianna',
|
||||
'claire',
|
||||
'diego',
|
||||
'ella',
|
||||
'frank',
|
||||
'george',
|
||||
'holly',
|
||||
'ivan',
|
||||
'jessica',
|
||||
'kyle',
|
||||
'logan',
|
||||
'mason',
|
||||
'nicolas',
|
||||
'olga',
|
||||
'paul',
|
||||
'quinn',
|
||||
'ryder',
|
||||
'scarlett',
|
||||
'tristan',
|
||||
'ulysses',
|
||||
'violet',
|
||||
]
|
||||
110
backend/src/core/prisma/prisma.seed.ts
Normal file
110
backend/src/core/prisma/prisma.seed.ts
Normal file
@ -0,0 +1,110 @@
|
||||
import { BadRequestException, Logger } from '@nestjs/common'
|
||||
import { hash } from 'argon2'
|
||||
import { Prisma, PrismaClient } from '../../../prisma/generated'
|
||||
|
||||
import { CATEGORIES } from './data/categories.data'
|
||||
import { USERNAMES } from './data/users.data'
|
||||
import { STREAMS } from './data/streams.data'
|
||||
|
||||
const prisma = new PrismaClient({
|
||||
transactionOptions: {
|
||||
maxWait: 5000,
|
||||
timeout: 10000,
|
||||
isolationLevel: Prisma.TransactionIsolationLevel.Serializable,
|
||||
},
|
||||
})
|
||||
async function main() {
|
||||
try {
|
||||
Logger.log('Начало заполнения базы данных')
|
||||
|
||||
await prisma.$transaction([
|
||||
prisma.user.deleteMany({}),
|
||||
prisma.socialLink.deleteMany({}),
|
||||
prisma.stream.deleteMany({}),
|
||||
prisma.category.deleteMany({}),
|
||||
])
|
||||
|
||||
await prisma.category.createMany({ data: CATEGORIES })
|
||||
Logger.log('Категории успешно созданы')
|
||||
const categories = await prisma.category.findMany()
|
||||
|
||||
const categoriesBySlug = Object.fromEntries(
|
||||
categories.map(category => [category.slug, category]),
|
||||
)
|
||||
|
||||
await prisma.$transaction(async (tx) => {
|
||||
for (const name of USERNAMES) {
|
||||
const randomCategory = categoriesBySlug[
|
||||
Object.keys(categoriesBySlug)[
|
||||
Math.floor(Math.random() * Object.keys(categoriesBySlug).length)
|
||||
]
|
||||
]
|
||||
|
||||
const userExists = await tx.user.findUnique({ where: { name } })
|
||||
if (!userExists) {
|
||||
const createdUser = await tx.user.create({
|
||||
data: {
|
||||
email: `${name}@teastream.ru`,
|
||||
password: await hash('12345678'),
|
||||
name,
|
||||
displayName: name,
|
||||
avatar: `/channels/${name}.webp`,
|
||||
isEmailVerified: true,
|
||||
socialLink: {
|
||||
createMany: {
|
||||
data: [
|
||||
{
|
||||
title: 'Telegram',
|
||||
url: `https://t.me/${name}`,
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
title: 'YouTube',
|
||||
url: `https://youtube.com/@${name}`,
|
||||
position: 2,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
// notificationSettings: {
|
||||
// create: {},
|
||||
// },
|
||||
},
|
||||
})
|
||||
|
||||
const randomTitles = STREAMS[randomCategory.slug] as string
|
||||
const randomTitle = randomTitles[Math.floor(Math.random() * randomTitles.length)]
|
||||
|
||||
await tx.stream.create({
|
||||
data: {
|
||||
title: randomTitle,
|
||||
thumbnailUrl: `/streams/${createdUser.name}.webp`,
|
||||
user: {
|
||||
connect: {
|
||||
id: createdUser.id,
|
||||
},
|
||||
},
|
||||
category: {
|
||||
connect: {
|
||||
id: randomCategory.id,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Logger.log(`Пользователь "${createdUser.name}" и его стрим успешно созданы`)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
catch (e) {
|
||||
Logger.error(e)
|
||||
throw new BadRequestException('Ошибка при заполнении базы данных')
|
||||
}
|
||||
finally {
|
||||
Logger.log('Закрытие соединения с базой данных')
|
||||
await prisma.$disconnect()
|
||||
Logger.log('Соединение с базой данныз успешно закрыто')
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
Loading…
x
Reference in New Issue
Block a user