| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689 |
- # Подключение PouchDB
- PouchDB = require 'pouchdb'
- # Важно сохранять для seed-events.coffee
- debug = require('../../../utils/coffee/debug.coffee').default
- class DatabaseSeeder
- constructor: (dbName, baseUrl = 'http://oleg:631074@localhost:5984') ->
- @dbName = dbName
- @baseUrl = baseUrl
- @db = new PouchDB(@baseUrl+"/"+@dbName)
- @designDoc = require './design-documents.coffee'
- # Проверка существования базы данных
- checkDatabaseExists: ->
- try
- info = await @db.info()
- debug.log "База данных "+@dbName+" существует"
- return true
- catch error
- debug.log "База данных "+@dbName+" не существует: "+error
- return false
- # Создание базы данных если не существует
- createDatabaseIfNotExists: ->
- exists = await @checkDatabaseExists()
- if not exists
- try
- # Создаем базу через PUT запрос
- response = await fetch(@baseUrl+"/"+@dbName, method: 'PUT')
- if response.ok
- debug.log "База данных "+@dbName+" создана"
- else
- debug.log "Ошибка создания базы: "+response.statusText
- catch error
- debug.log "Ошибка при создании базы: "+error
- return exists
- # Удаление старых версий документов
- cleanupOldDocuments: ->
- try
- debug.log "Начало очистки старых документов"
-
- # Получаем все документы
- allDocs = await @db.allDocs(include_docs: true)
-
- documentsToDelete = []
- documentsToKeep = new Set()
-
- # Группируем документы по типам и идентификаторам
- documentsByType = {}
-
- for row in allDocs.rows
- doc = row.doc
- if doc._id.startsWith('_design/')
- continue # Пропускаем design документы
-
- docType = doc.type or 'unknown'
- if not documentsByType[docType]
- documentsByType[docType] = []
-
- documentsByType[docType].push(doc)
-
- # Для каждого типа документов определяем какие удалять
- for docType, docs of documentsByType
- if docs.length <= 6
- # Если документов меньше или равно 6, сохраняем все
- for doc in docs
- documentsToKeep.add(doc._id)
- continue
-
- # Сортируем по дате создания (новые первыми)
- sortedDocs = docs.sort (a, b) ->
- new Date(b.created_at) - new Date(a.created_at)
-
- # Оставляем только 6 самых новых документов каждого типа
- for doc, index in sortedDocs
- if index < 6
- documentsToKeep.add(doc._id)
- else
- documentsToDelete.push({
- _id: doc._id
- _rev: doc._rev
- _deleted: true
- })
-
- # Удаляем старые документы
- if documentsToDelete.length > 0
- result = await @db.bulkDocs(documentsToDelete)
- debug.log "Удалено старых документов: "+documentsToDelete.length
- else
- debug.log "Старые документы для удаления не найдены"
-
- debug.log "Очистка старых документов завершена"
-
- catch error
- debug.log "Ошибка при очистке старых документов: "+error
- # Проверка и создание design документов
- setupDesignDocuments: ->
- try
- for designName, designDoc of @designDoc
- docId = "_design/"+designName
- try
- # Пытаемся получить текущий документ
- currentDoc = await @db.get(docId)
-
- # Сравниваем версии
- if currentDoc.version isnt designDoc.version
- debug.log "Обновление design документа: "+designName
- designDoc._id = docId
- designDoc._rev = currentDoc._rev
- await @db.put(designDoc)
- debug.log "Design документ "+designName+" обновлен до версии "+designDoc.version
- else
- debug.log "Design документ "+designName+" актуален"
-
- catch error
- if error.status is 404
- # Документ не существует, создаем новый
- debug.log "Создание design документа: "+designName
- designDoc._id = docId
- await @db.put(designDoc)
- debug.log "Design документ "+designName+" создан"
- else
- throw error
-
- catch error
- debug.log "Ошибка при настройке design документов: "+error
- # Создание тестовых данных для сайта
- createSampleData: ->
- currentDate = new Date().toISOString()
- futureDate = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString()
- pastDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()
-
- sampleData = [
- # Доменные настройки
- {
- _id: "domain_settings_borbad_s5l_ru"
- type: "domain_settings"
- domain: "borbad.s5l.ru"
- name: "Кохи Борбад - Концертный зал Душанбе"
- description: "Официальный сайт концертного зала Борбад"
- active: true
- priority: 1
- theme: "borbad"
- languages: ["ru", "en", "tj"]
- default_language: "ru"
- timezone: "Asia/Dushanbe"
- currency: "TJS"
- settings:
- seo:
- title_template: "{page} - Кохи Борбад"
- description: "Концертный зал Борбад - культурный центр Душанбе"
- keywords: ["концерты", "мероприятия", "Душанбе", "культура"]
- social:
- facebook: "https://facebook.com/borbad"
- instagram: "https://instagram.com/borbad"
- twitter: "https://twitter.com/borbad"
- contact:
- address: "г. Душанбе, пр. Рудаки 22"
- phone: "+992 37 123-45-67"
- email: "info@borbad.s5l.ru"
- created_at: currentDate
- updated_at: currentDate
- }
- # Слайдеры (6 слайдов)
- {
- _id: "slide_1"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Добро пожаловать в Кохи Борбад"
- content: "## Современный концертный зал в сердце Душанбе\n\nМесто, где встречаются искусство и культура"
- image: "/assets/borbad.s5l.ru/sliders/main-hall.jpg"
- order: 1
- active: true
- button_text: "Узнать больше"
- button_link: "/about"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "slide_2"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Симфонические вечера"
- content: "## Погрузитесь в мир классической музыки\n\nЕженедельные концерты симфонического оркестра"
- image: "/assets/borbad.s5l.ru/sliders/orchestra.jpg"
- order: 2
- active: true
- button_text: "Расписание"
- button_link: "/events"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "slide_3"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Танцевальные представления"
- content: "## Искусство танца во всем его разнообразии\n\nОт народных до современных постановок"
- image: "/assets/borbad.s5l.ru/sliders/dance-performance.jpg"
- order: 3
- active: true
- button_text: "Билеты"
- button_link: "/events"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "slide_4"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Выставки и вернисажи"
- content: "## Пространство для современного искусства\n\nРегулярные выставки местных и зарубежных художников"
- image: "/assets/borbad.s5l.ru/sliders/art-exhibition.jpg"
- order: 4
- active: true
- button_text: "Галерея"
- button_link: "/gallery"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "slide_5"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Образовательные программы"
- content: "## Мастер-классы и лекции\n\nДля детей и взрослых, любителей и профессионалов"
- image: "/assets/borbad.s5l.ru/sliders/workshop.jpg"
- order: 5
- active: true
- button_text: "Программы"
- button_link: "/education"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "slide_6"
- type: "slide"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Специальные мероприятия"
- content: "## Корпоративы и частные события\n\nАренда зала для ваших особых мероприятий"
- image: "/assets/borbad.s5l.ru/sliders/private-event.jpg"
- order: 6
- active: true
- button_text: "Забронировать"
- button_link: "/contacts"
- text_color: "#ffffff"
- overlay: true
- created_at: currentDate
- updated_at: currentDate
- }
- # Блог посты (6 постов)
- {
- _id: "blog_post_1"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Открытие нового сезона 2024"
- content: "# Добро пожаловать в новый творческий сезон!\n\nМы рады объявить о начале нового сезона в концертном зале Борбад. В этом году нас ждут удивительные события:\n\n- **Симфонические концерты** каждую пятницу\n- **Танцевальные вечера** с участием лучших коллективов\n- **Выставки современного искусства**\n- **Образовательные программы** для всех возрастов\n\nНе пропустите наши специальные мероприятия для детей и семей!\n\n## Расписание\n\nПолное расписание мероприятий доступно в разделе [Мероприятия](/events)."
- excerpt: "Новый творческий сезон 2024 года в концертном зале Борбад"
- image: "/assets/borbad.s5l.ru/posts/season-opening.jpg"
- tags: ["новости", "сезон", "анонс"]
- category_id: "category_news"
- author: "Администрация Борбад"
- status: "published"
- meta_title: "Открытие нового сезона 2024 - Кохи Борбад"
- meta_description: "Новый творческий сезон 2024 года в концертном зале Борбад в Душанбе"
- featured: true
- created_at: currentDate
- updated_at: currentDate
- published_at: currentDate
- views: 156
- }
- {
- _id: "blog_post_2"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "История создания концертного зала"
- content: "# Кохи Борбад: История и архитектура\n\n## Начало пути\n\nКонцертный зал Борбад был основан в 2010 году с целью создания современного культурного пространства в Душанбе. Название зала отдает дань уважения великому таджикскому поэту и музыканту Борбаду.\n\n## Архитектурные особенности\n\nЗдание сочетает в себе современные архитектурные решения с традиционными таджикскими мотивами. Особое внимание уделено акустике зала, что делает его идеальным местом для классической музыки.\n\n## Миссия\n\nНаша миссия - способствовать развитию культуры и искусства в Таджикистане, предоставляя площадку для местных и международных артистов."
- excerpt: "История создания и архитектурные особенности концертного зала Борбад"
- image: "/assets/borbad.s5l.ru/posts/history-building.jpg"
- tags: ["история", "архитектура", "культура"]
- category_id: "category_about"
- author: "Директор зала"
- status: "published"
- meta_title: "История концертного зала Борбад - Кохи Борбад"
- meta_description: "История создания и архитектура концертного зала Борбад в Душанбе"
- featured: true
- created_at: pastDate
- updated_at: currentDate
- published_at: pastDate
- views: 289
- }
- {
- _id: "blog_post_3"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Мастер-класс по игре на рубабе"
- content: "# Искусство игры на традиционных инструментах\n\n## Приглашаем на мастер-класс\n\nИзвестный музыкант Алишер Назаров проведет серию мастер-классов по игре на рубабе - традиционном таджикском музыкальном инструменте.\n\n## Программа\n\n- Основы техники игры\n- Традиционные мелодии\n- Современные аранжировки\n- Индивидуальные занятия\n\n## Даты проведения\n\nМастер-классы будут проходить каждую субботу в 15:00. Количество участников ограничено.\n\n## Регистрация\n\nДля участия необходимо зарегистрироваться по телефону +992 37 123-45-67."
- excerpt: "Мастер-классы по игре на традиционном таджикском инструменте рубаб"
- image: "/assets/borbad.s5l.ru/posts/rubab-workshop.jpg"
- tags: ["мастер-класс", "музыка", "образование"]
- category_id: "category_education"
- author: "Алишер Назаров"
- status: "published"
- meta_title: "Мастер-класс по игре на рубабе - Кохи Борбад"
- meta_description: "Мастер-классы по игре на традиционном таджикском инструменте рубаб в Душанбе"
- featured: false
- created_at: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString()
- updated_at: currentDate
- published_at: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString()
- views: 98
- }
- {
- _id: "blog_post_4"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Выставка современного таджикского искусства"
- content: "# Новые горизонты: Современное искусство Таджикистана\n\n## О выставке\n\nВ галерее Борбад открывается масштабная выставка современных таджикских художников. В экспозиции представлены работы в различных техниках и стилях.\n\n## Участники\n\n- Фаррух Негматзаде (живопись)\n- Садбарг Касымова (скульптура)\n- Джахонгир Азизов (цифровое искусство)\n- и другие\n\n## Темы\n\nХудожники исследуют темы идентичности, традиций и современности в условиях глобализации.\n\n## Время работы\n\nВыставка открыта ежедневно с 10:00 до 20:00. Вход свободный."
- excerpt: "Выставка современных таджикских художников в галерее Борбад"
- image: "/assets/borbad.s5l.ru/posts/art-exhibition.jpg"
- tags: ["выставка", "искусство", "современное"]
- category_id: "category_exhibitions"
- author: "Куратор галереи"
- status: "published"
- meta_title: "Выставка современного таджикского искусства - Кохи Борбад"
- meta_description: "Выставка современных таджикских художников в галерее концертного зала Борбад"
- featured: true
- created_at: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
- updated_at: currentDate
- published_at: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
- views: 167
- }
- {
- _id: "blog_post_5"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Вечер поэзии и музыки"
- content: "# Шедевры персидской поэзии\n\n## Особый вечер\n\nПриглашаем на уникальный вечер, посвященный персидской поэзии в сопровождении традиционной музыки.\n\n## Программа\n\n- Чтение стихов Рудаки, Хафиза и Саади\n- Музыкальное сопровождение на сеторе и дойре\n- Современные интерпретации классических произведений\n\n## Исполнители\n\nВ вечере принимают участие известные чтецы и музыканты Таджикистана.\n\n## Билеты\n\nБилеты можно приобрести в кассе зала или онлайн на нашем сайте."
- excerpt: "Вечер персидской поэзии в сопровождении традиционной музыки"
- image: "/assets/borbad.s5l.ru/posts/poetry-evening.jpg"
- tags: ["поэзия", "музыка", "традиции"]
- category_id: "category_events"
- author: "Организатор мероприятий"
- status: "published"
- meta_title: "Вечер персидской поэзии - Кохи Борбад"
- meta_description: "Вечер персидской поэзии в сопровождении традиционной музыки в концертном зале Борбад"
- featured: false
- created_at: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString()
- updated_at: currentDate
- published_at: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString()
- views: 134
- }
- {
- _id: "blog_post_6"
- type: "blog_post"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Детская программа: Музыкальная сказка"
- content: "# Волшебный мир музыки для детей\n\n## Новая постановка\n\nТеатральная студия Борбад представляет музыкальную сказку \"Волшебная флейта\" для детей от 3 до 10 лет.\n\n## Сюжет\n\nМаленькие зрители отправятся в увлекательное путешествие вместе с главными героями, где музыка помогает преодолевать препятствия и творить чудеса.\n\n## Образовательный аспект\n\nСпектакль знакомит детей с различными музыкальными инструментами и основными понятиями музыки.\n\n## Расписание\n\nПредставления проходят по воскресеньям в 11:00. Продолжительность - 45 минут."
- excerpt: "Музыкальная сказка для детей в театральной студии Борбад"
- image: "/assets/borbad.s5l.ru/posts/children-play.jpg"
- tags: ["дети", "театр", "образование"]
- category_id: "category_children"
- author: "Художественный руководитель"
- status: "published"
- meta_title: "Детская музыкальная сказка - Кохи Борбад"
- meta_description: "Музыкальная сказка для детей в театральной студии концертного зала Борбад"
- featured: true
- created_at: new Date(Date.now() - 12 * 24 * 60 * 60 * 1000).toISOString()
- updated_at: currentDate
- published_at: new Date(Date.now() - 12 * 24 * 60 * 60 * 1000).toISOString()
- views: 201
- }
- # Мероприятия (6 мероприятий)
- {
- _id: "event_1"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Симфонический концерт: Бетховен и Чайковский"
- content: "# Великие композиторы\n\n## Программа концерта\n\n- **Л. ван Бетховен** - Симфония №5\n- **П.И. Чайковский** - Лебединое озеро (сюита)\n- **П.И. Чайковский** - Щелкунчик (сюита)\n\n## Исполнители\n\nСимфонический оркестр Борбад под управлением дирижера Фарруха Саидова.\n\n## Продолжительность\n\nКонцерт длится 2 часа с одним антрактом.\n\n## Рекомендации\n\nРекомендуем приходить за 30 минут до начала концерта."
- event_date: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000 + 2 * 60 * 60 * 1000).toISOString()
- location: "Большой зал"
- venue_id: "venue_main_hall"
- price: 500
- currency: "TJS"
- available_tickets: 45
- total_tickets: 300
- image: "/assets/borbad.s5l.ru/events/beethoven-concert.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/concert1.jpg"
- "/assets/borbad.s5l.ru/gallery/concert2.jpg"
- ]
- tags: ["концерт", "симфоническая музыка", "классика", "Бетховен", "Чайковский"]
- category_id: "category_concerts"
- status: "upcoming"
- registration_required: true
- max_attendees: 300
- age_restriction: "6+"
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "event_2"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Танцевальный вечер: Народные традиции"
- content: "# Танцы народов мира\n\n## Программа\n\n- Таджикские народные танцы\n- Узбекские классические танцы\n- Афганские традиционные танцы\n- Современные хореографические постановки\n\n## Коллективы\n\n- Ансамбль \"Лола\"\n- Танцевальная группа \"Шарора\"\n- Гость из Кабула - ансамбль \"Ариана\"\n\n## Особенности\n\nЯркие костюмы, живая музыка и энергия традиционных танцев."
- event_date: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000 + 2.5 * 60 * 60 * 1000).toISOString()
- location: "Большой зал"
- venue_id: "venue_main_hall"
- price: 400
- currency: "TJS"
- available_tickets: 120
- total_tickets: 300
- image: "/assets/borbad.s5l.ru/events/folk-dance.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/dance1.jpg"
- "/assets/borbad.s5l.ru/gallery/dance2.jpg"
- ]
- tags: ["танец", "народный", "традиции", "фольклор"]
- category_id: "category_dance"
- status: "upcoming"
- registration_required: true
- max_attendees: 300
- age_restriction: "Все возраста"
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "event_3"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Джазовый вечер с Тимуром Якубовым"
- content: "# Современный джаз в Борбаде\n\n## О исполнителе\n\nТимур Якубов - известный джазовый пианист и композитор, лауреат международных конкурсов.\n\n## Программа\n\n- Авторские композиции\n- Джазовые стандарты\n- Импровизации\n- Совместные выступления с местными музыкантами\n\n## Стиль\n\nСовременный джаз с влиянием таджикских музыкальных традиций."
- event_date: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 10 * 24 * 60 * 60 * 1000 + 2 * 60 * 60 * 1000).toISOString()
- location: "Малый зал"
- venue_id: "venue_small_hall"
- price: 350
- currency: "TJS"
- available_tickets: 80
- total_tickets: 150
- image: "/assets/borbad.s5l.ru/events/jazz-evening.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/jazz1.jpg"
- ]
- tags: ["джаз", "современная музыка", "импровизация"]
- category_id: "category_concerts"
- status: "upcoming"
- registration_required: true
- max_attendees: 150
- age_restriction: "12+"
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "event_4"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Выставка: Современное искусство Центральной Азии"
- content: "# Диалог культур\n\n## О выставке\n\nКрупная выставка, представляющая работы современных художников из Таджикистана, Узбекистана, Казахстана и Кыргызстана.\n\n## Куратор\n\nДоктор искусствоведения Зарина Каримова.\n\n## Темы\n\n- Идентичность в современном мире\n- Традиции и инновации\n- Экологические проблемы региона\n\n## Особенности\n\nИнтерактивные инсталляции и мультимедийные проекты."
- event_date: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString()
- location: "Галерея Борбад"
- venue_id: "venue_gallery"
- price: 0
- currency: "TJS"
- available_tickets: 999
- total_tickets: 1000
- image: "/assets/borbad.s5l.ru/events/art-exhibition.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/exhibition1.jpg"
- "/assets/borbad.s5l.ru/gallery/exhibition2.jpg"
- "/assets/borbad.s5l.ru/gallery/exhibition3.jpg"
- ]
- tags: ["выставка", "искусство", "современное", "Центральная Азия"]
- category_id: "category_exhibitions"
- status: "upcoming"
- registration_required: false
- max_attendees: 50
- age_restriction: "Все возраста"
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "event_5"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Мастер-класс: Основы вокала"
- content: "# Искусство пения для начинающих\n\n## О ведущем\n\nОперный певец Шариф Мухтаров, солист Национального театра оперы и балета.\n\n## Программа\n\n- Постановка дыхания\n- Основы вокальной техники\n- Работа с резонаторами\n- Подбор репертуара\n- Преодоление страха сцены\n\n## Для кого\n\nДля всех, кто хочет научиться правильно петь или улучшить свои вокальные навыки."
- event_date: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 5 * 24 * 60 * 60 * 1000 + 3 * 60 * 60 * 1000).toISOString()
- location: "Репетиционный зал"
- venue_id: "venue_rehearsal"
- price: 200
- currency: "TJS"
- available_tickets: 15
- total_tickets: 20
- image: "/assets/borbad.s5l.ru/events/vocal-workshop.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/workshop1.jpg"
- ]
- tags: ["мастер-класс", "вокал", "образование", "музыка"]
- category_id: "category_education"
- status: "upcoming"
- registration_required: true
- max_attendees: 20
- age_restriction: "16+"
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "event_6"
- type: "event"
- domain: "borbad.s5l.ru"
- language: "ru"
- title: "Кинопоказ: Классика советского кино"
- content: "# Вечер памяти великого режиссера\n\n## Фильм\n\n\"Человек идет за солнцем\" (1961) режиссера Михаила Калика.\n\n## О фильме\n\nПоэтическая киноповесть о мальчике, который отправляется на поиски солнца. Символический фильм о детстве, мечтах и надеждах.\n\n## После показа\n\nОбсуждение с киноведом Дилшодом Рахматовым.\n\n## Особенности\n\nПоказ на оригинальной пленке с цифровым восстановлением."
- event_date: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toISOString()
- end_date: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000 + 2.5 * 60 * 60 * 1000).toISOString()
- location: "Малый зал"
- venue_id: "venue_small_hall"
- price: 150
- currency: "TJS"
- available_tickets: 95
- total_tickets: 150
- image: "/assets/borbad.s5l.ru/events/film-screening.jpg"
- gallery: [
- "/assets/borbad.s5l.ru/gallery/film1.jpg"
- ]
- tags: ["кино", "ретро", "советское кино", "культура"]
- category_id: "category_film"
- status: "upcoming"
- registration_required: true
- max_attendees: 150
- age_restriction: "12+"
- created_at: currentDate
- updated_at: currentDate
- }
- # Категории
- {
- _id: "category_news"
- type: "category"
- domain: "borbad.s5l.ru"
- language: "ru"
- name: "Новости"
- slug: "news"
- description: "Последние новости и анонсы концертного зала"
- image: "/assets/borbad.s5l.ru/categories/news.jpg"
- parent_id: null
- order: 1
- meta_title: "Новости - Кохи Борбад"
- meta_description: "Последние новости и анонсы концертного зала Борбад"
- active: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "category_concerts"
- type: "category"
- domain: "borbad.s5l.ru"
- language: "ru"
- name: "Концерты"
- slug: "concerts"
- description: "Музыкальные мероприятия и концерты"
- image: "/assets/borbad.s5l.ru/categories/concerts.jpg"
- parent_id: null
- order: 2
- meta_title: "Концерты - Кохи Борбад"
- meta_description: "Музыкальные мероприятия и концерты в концертном зале Борбад"
- active: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "category_exhibitions"
- type: "category"
- domain: "borbad.s5l.ru"
- language: "ru"
- name: "Выставки"
- slug: "exhibitions"
- description: "Художественные выставки и вернисажи"
- image: "/assets/borbad.s5l.ru/categories/exhibitions.jpg"
- parent_id: null
- order: 3
- meta_title: "Выставки - Кохи Борбад"
- meta_description: "Художественные выставки и вернисажи в галерее Борбад"
- active: true
- created_at: currentDate
- updated_at: currentDate
- }
- {
- _id: "category_education"
- type: "category"
- domain: "borbad.s5l.ru"
- language: "ru"
- name: "Образование"
- slug: "education"
- description: "Мастер-классы, лекции и образовательные программы"
- image: "/assets/borbad.s5l.ru/categories/education.jpg"
- parent_id: null
- order: 4
- meta_title: "Образовательные программы - Кохи Борбад"
- meta_description: "Мастер-классы, лекции и образовательные программы в концертном зале Борбад"
- active: true
- created_at: currentDate
- updated_at: currentDate
- }
- ]
-
- try
- createdCount = 0
- updatedCount = 0
-
- for doc in sampleData
- try
- # Проверяем существует ли документ
- existing = await @db.get(doc._id)
- doc._rev = existing._rev
- await @db.put(doc)
- updatedCount++
- debug.log "Обновлен документ: "+doc._id
- catch error
- if error.status is 404
- # Документ не существует, создаем новый
- await @db.put(doc)
- createdCount++
- debug.log "Создан документ: "+doc._id
- else
- throw error
-
- debug.log "Тестовые данные успешно созданы: создано "+createdCount+", обновлено "+updatedCount
- catch error
- debug.log "Ошибка при создании тестовых данных: "+error
- # Основной метод инициализации
- initialize: ->
- debug.log "Начало инициализации базы данных"
-
- await @createDatabaseIfNotExists()
- await @cleanupOldDocuments()
- await @setupDesignDocuments()
- await @createSampleData()
-
- debug.log "Инициализация базы данных завершена"
- # Экспорт класса
- module.exports = DatabaseSeeder
- # Если файл запущен напрямую
- if require.main is module
- seeder = new DatabaseSeeder('borbad_events')
- seeder.initialize().catch (error) ->
- debug.log "Критическая ошибка инициализации: "+error
|