# Подключение 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'
        @orderCounter = 0
        @currentYear = new Date().getFullYear()

    # Генератор ID для категорий
    generateCategoryId: (name, parentId = null, domain = null) ->
        slug = name[0]  # Берем первый язык для генерации slug
            .toLowerCase()
            .replace(/[^a-z0-9а-яё]/g, '_')
            .replace(/_+/g, '_')
            .replace(/^_|_$/g, '')
        
        id = "category_"+slug
        
        if parentId
            parentSlug = parentId.replace(/^category_/, '')
            id += "_"+parentSlug
        
        if domain
            domainPart = domain.replace(/\./g, '_')
            id += "_"+domainPart
        
        return id

    # Генератор ID для заказов
    generateOrderId: ->
        @orderCounter++
        return "order_"+@currentYear+"_"+@orderCounter.toString().padStart(3, '0')

    # Генератор ID для блог постов
    generateBlogPostId: (title, domain = null) ->
        slug = title[0]  # Берем первый язык для генерации slug
            .toLowerCase()
            .replace(/[^a-z0-9а-яё]/g, '_')
            .replace(/_+/g, '_')
            .replace(/^_|_$/g, '')
        
        year = new Date().getFullYear()
        id = "blog_post_"+slug+"_"+year
        
        if domain
            domainPart = domain.replace(/\./g, '_')
            id += "_"+domainPart
        
        return id

    # Генератор ID для мероприятий
    generateEventId: (title, eventDate, domain = null) ->
        slug = title[0]  # Берем первый язык для генерации slug
            .toLowerCase()
            .replace(/[^a-z0-9а-яё]/g, '_')
            .replace(/_+/g, '_')
            .replace(/^_|_$/g, '')
        
        date = new Date(eventDate)
        year = date.getFullYear()
        month = (date.getMonth() + 1).toString().padStart(2, '0')
        
        id = "event_"+slug+"_"+year+"_"+month
        
        if domain
            domainPart = domain.replace(/\./g, '_')
            id += "_"+domainPart
        
        return id

    # Генератор ID для товаров
    generateProductId: (title, domain = null) ->
        slug = title[0]  # Берем первый язык для генерации slug
            .toLowerCase()
            .replace(/[^a-z0-9а-яё]/g, '_')
            .replace(/_+/g, '_')
            .replace(/^_|_$/g, '')
        
        year = new Date().getFullYear()
        id = "product_"+slug+"_"+year
        
        if domain
            domainPart = domain.replace(/\./g, '_')
            id += "_"+domainPart
        
        return id

    # Генератор ID для слайдов
    generateSlideId: (order, domain = null) ->
        id = "slide_"+order.toString().padStart(2, '0')
        
        if domain
            domainPart = domain.replace(/\./g, '_')
            id += "_"+domainPart
        
        return id

    # Проверка существования базы данных
    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
                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
                
                docType = doc.type or 'unknown'
                if not documentsByType[docType]
                    documentsByType[docType] = []
                
                documentsByType[docType].push(doc)
            
            for docType, docs of documentsByType
                if docs.length <= 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)
                
                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

    # Создание иерархической структуры категорий с мультиязычностью
    createCategoryHierarchy: ->
        categories = [
            # Корневые категории
            {
                _id: @generateCategoryId(["Мероприятия", "Events", "Чорабиниҳо"], null, "borbad")
                type: "category"
                domain: ["borbad.s5l.ru", "concert-hall.tj"]
                language: ["ru", "en", "tj"]
                name: ["Мероприятия", "Events", "Чорабиниҳо"]
                slug: ["events", "events", "chorabinīho"]
                description: ["Все мероприятия концертного зала", "All concert hall events", "Ҳамаи чорабиниҳои ҳолли консерт"]
                image: [
                    "/assets/borbad.s5l.ru/categories/events.jpg"
                    "/assets/borbad.s5l.ru/categories/events.jpg"
                    "/assets/borbad.s5l.ru/categories/events.jpg"
                ]
                icon: ["calendar", "calendar", "calendar"]
                parent_id: null
                parent_path: []
                level: 0
                order: 1
                children_count: 4
                meta_title: ["Мероприятия - Кохи Борбад", "Events - Borbad Concert Hall", "Чорабиниҳо - Ҳолли Борбад"]
                meta_description: ["Концерты, выставки и другие мероприятия в концертном зале Борбад", "Concerts, exhibitions and other events at Borbad Concert Hall", "Консертҳо, намоишҳо ва дигар чорабиниҳо дар ҳолли консертии Борбад"]
                active: true
                featured: true
                show_in_menu: true
                menu_order: 1
                color: ["#3B82F6", "#3B82F6", "#3B82F6"]
                created_at: new Date().toISOString()
                updated_at: new Date().toISOString()
            }
            {
                _id: @generateCategoryId(["Новости", "News", "Хабарҳо"], null, "borbad")
                type: "category"
                domain: ["borbad.s5l.ru"]
                language: ["ru", "en", "tj"]
                name: ["Новости", "News", "Хабарҳо"]
                slug: ["news", "news", "khabarho"]
                description: ["Новости и анонсы концертного зала", "News and announcements of the concert hall", "Хабарҳо ва эълонҳои ҳолли консерт"]
                image: [
                    "/assets/borbad.s5l.ru/categories/news.jpg"
                    "/assets/borbad.s5l.ru/categories/news.jpg"
                    "/assets/borbad.s5l.ru/categories/news.jpg"
                ]
                icon: ["news", "news", "news"]
                parent_id: null
                parent_path: []
                level: 0
                order: 2
                children_count: 0
                meta_title: ["Новости - Кохи Борбад", "News - Borbad Concert Hall", "Хабарҳо - Ҳолли Борбад"]
                meta_description: ["Последние новости и анонсы концертного зала Борбад", "Latest news and announcements from Borbad Concert Hall", "Охирин хабарҳо ва эълонҳои ҳолли консертии Борбад"]
                active: true
                featured: false
                show_in_menu: true
                menu_order: 2
                color: ["#10B981", "#10B981", "#10B981"]
                created_at: new Date().toISOString()
                updated_at: new Date().toISOString()
            }

            # Подкатегории для "Мероприятия"
            {
                _id: @generateCategoryId(["Концерты", "Concerts", "Консертҳо"], "category_events_borbad", "borbad")
                type: "category"
                domain: ["borbad.s5l.ru", "concert-hall.tj"]
                language: ["ru", "en", "tj"]
                name: ["Концерты", "Concerts", "Консертҳо"]
                slug: ["concerts", "concerts", "konsert-ho"]
                description: ["Музыкальные концерты различных жанров", "Music concerts of various genres", "Консертҳои мусиқии навъҳои гуногун"]
                image: [
                    "/assets/borbad.s5l.ru/categories/concerts.jpg"
                    "/assets/borbad.s5l.ru/categories/concerts.jpg"
                    "/assets/borbad.s5l.ru/categories/concerts.jpg"
                ]
                icon: ["music", "music", "music"]
                parent_id: "category_events_borbad"
                parent_path: ["category_events_borbad"]
                level: 1
                order: 1
                children_count: 3
                meta_title: ["Концерты - Кохи Борбад", "Concerts - Borbad Concert Hall", "Консертҳо - Ҳолли Борбад"]
                meta_description: ["Музыкальные концерты в концертном зале Борбад", "Music concerts at Borbad Concert Hall", "Консертҳои мусиқӣ дар ҳолли консертии Борбад"]
                active: true
                featured: true
                show_in_menu: true
                menu_order: 1
                color: ["#6366F1", "#6366F1", "#6366F1"]
                created_at: new Date().toISOString()
                updated_at: new Date().toISOString()
            }

            # Подкатегории для "Концерты"
            {
                _id: @generateCategoryId(["Классическая музыка", "Classical Music", "Мусиқии классикӣ"], "category_concerts_events_borbad", "borbad")
                type: "category"
                domain: ["borbad.s5l.ru", "concert-hall.tj"]
                language: ["ru", "en", "tj"]
                name: ["Классическая музыка", "Classical Music", "Мусиқии классикӣ"]
                slug: ["classical-music", "classical-music", "musiqii-klasikī"]
                description: ["Симфонические концерты и классические произведения", "Symphonic concerts and classical works", "Консертҳои симфонӣ ва осори классикӣ"]
                image: [
                    "/assets/borbad.s5l.ru/categories/classical-music.jpg"
                    "/assets/borbad.s5l.ru/categories/classical-music.jpg"
                    "/assets/borbad.s5l.ru/categories/classical-music.jpg"
                ]
                icon: ["classical", "classical", "classical"]
                parent_id: "category_concerts_events_borbad"
                parent_path: ["category_events_borbad", "category_concerts_events_borbad"]
                level: 2
                order: 1
                children_count: 0
                meta_title: ["Классическая музыка - Кохи Борбад", "Classical Music - Borbad Concert Hall", "Мусиқии классикӣ - Ҳолли Борбад"]
                meta_description: ["Симфонические концерты и классические произведения", "Symphonic concerts and classical works", "Консертҳои симфонӣ ва осори классикӣ"]
                active: true
                featured: true
                show_in_menu: true
                menu_order: 1
                color: ["#3B82F6", "#3B82F6", "#3B82F6"]
                created_at: new Date().toISOString()
                updated_at: new Date().toISOString()
            }
        ]
        
        return categories

    # Создание тестовых данных для сайта с новой структурой
    createSampleData: ->
        currentDate = new Date().toISOString()
        
        sampleData = [
            # Доменные настройки
            {
                _id: "domain_settings_borbad_s5l_ru"
                type: "domain_settings"
                domain: "borbad.s5l.ru"
                name: ["Кохи Борбад - Концертный зал Душанбе", "Borbad Concert Hall - Dushanbe"]
                description: ["Официальный сайт концертного зала Борбад", "Official website of Borbad Concert Hall"]
                active: true
                priority: 1
                theme: "borbad"
                languages: ["ru", "en", "tj"]
                default_language: "ru"
                timezone: "Asia/Dushanbe"
                currency: "TJS"
                settings: {
                    seo: {
                        title_template: ["{page} - Кохи Борбад", "{page} - Borbad Concert Hall"]
                        description: ["Концертный зал Борбад - культурный центр Душанбе", "Borbad Concert Hall - Dushanbe Cultural Center"]
                        keywords: [["концерты", "мероприятия", "Душанбе", "культура"], ["concerts", "events", "Dushanbe", "culture"]]
                    }
                    social: {
                        facebook: "https://facebook.com/borbad"
                        instagram: "https://instagram.com/borbad"
                        twitter: "https://twitter.com/borbad"
                    }
                    contact: {
                        address: ["г. Душанбе, пр. Рудаки 22", "Rudaki Ave 22, Dushanbe"]
                        phone: ["+992 37 123-45-67", "+992 37 123-45-67"]
                        email: ["info@borbad.s5l.ru", "info@borbad.s5l.ru"]
                    }
                    features: {
                        online_booking: true
                        multi_language: true
                        ecommerce: true
                    }
                }
                created_at: currentDate
                updated_at: currentDate
            }

            # Добавляем иерархические категории
            ...@createCategoryHierarchy()

            # Блог посты с мультиязычными массивами
            {
                _id: @generateBlogPostId(["Открытие нового сезона 2024", "Opening of the new season 2024"], "borbad")
                type: "blog_post"
                domain: ["borbad.s5l.ru", "global"]
                language: ["ru", "en"]
                title: ["Открытие нового сезона 2024", "Opening of the new season 2024"]
                content: [
                    "# Добро пожаловать в новый творческий сезон!\n\nМы рады объявить о начале нового сезона в концертном зале Борбад. В этом году нас ждут удивительные события и незабываемые впечатления.",
                    "# Welcome to the new creative season!\n\nWe are pleased to announce the start of the new season at the Borbad Concert Hall. This year we have amazing events and unforgettable experiences awaiting us."
                ]
                excerpt: [
                    "Новый творческий сезон 2024 года в концертном зале Борбад",
                    "New creative season 2024 at the Borbad Concert Hall"
                ]
                seo: {
                    description: [
                        "Концертный зал Борбад открывает новый сезон 2024 года",
                        "Borbad Concert Hall opens the 2024 season"
                    ]
                    keywords: [
                        ["новости", "сезон", "анонс", "Борбад"],
                        ["news", "season", "announcement", "Borbad"]
                    ]
                    title: [
                        "Открытие нового сезона 2024 - Кохи Борбад",
                        "Opening of the new season 2024 - Borbad Concert Hall"
                    ]
                }
                image: [
                    "/assets/borbad.s5l.ru/posts/season-opening.jpg"
                    "/assets/borbad.s5l.ru/posts/season-opening.jpg"
                ]
                gallery: [
                    [
                        "/assets/borbad.s5l.ru/gallery/post1.jpg"
                        "/assets/borbad.s5l.ru/gallery/post2.jpg"
                    ],
                    [
                        "/assets/borbad.s5l.ru/gallery/post1.jpg"
                        "/assets/borbad.s5l.ru/gallery/post2.jpg"
                    ]
                ]
                tags: [
                    ["новости", "сезон", "анонс"],
                    ["news", "season", "announcement"]
                ]
                category_id: "category_news_borbad"
                category_path: ["category_news_borbad"]
                author: ["Администрация Борбад", "Borbad Administration"]
                status: "published"
                featured: true
                reading_time: [5, 5]
                created_at: currentDate
                updated_at: currentDate
                published_at: currentDate
                views: 156
                likes: 23
                shares: 45
            }

            # События (мероприятия) с мультиязычными данными
            {
                _id: @generateEventId(["Симфонический концерт: Бетховен и Чайковский", "Symphonic Concert: Beethoven and Tchaikovsky"], "2024-03-20T19:00:00.000Z", "borbad")
                type: "event"
                domain: ["borbad.s5l.ru", "concert-hall.tj"]
                language: ["ru", "en", "tj"]
                title: ["Симфонический концерт: Бетховен и Чайковский", "Symphonic Concert: Beethoven and Tchaikovsky", "Консерти симфонӣ: Бетховен ва Чайковский"]
                content: [
                    "# Великие композиторы\n\n## Программа концерта\n\n- **Л. ван Бетховен** - Симфония №5\n- **П.И. Чайковский** - Лебединое озеро (сюита)\n- **П.И. Чайковский** - Щелкунчик (сюита)\n\n## Исполнители\n\nСимфонический оркестр Борбад под управлением дирижера Фарруха Саидова.",
                    "# Great Composers\n\n## Concert Program\n\n- **L. van Beethoven** - Symphony No. 5\n- **P.I. Tchaikovsky** - Swan Lake (suite)\n- **P.I. Tchaikovsky** - The Nutcracker (suite)\n\n## Performers\n\nBorbad Symphony Orchestra conducted by Farrukh Saidov.",
                    "# Оҳангсозони бузург\n\n## Барномаи консерт\n\n- **Л. ван Бетховен** - Симфония №5\n- **П.И. Чайковский** - Озори ҳоҷилагак (сюита)\n- **П.И. Чайковский** - Қозуқанд (сюита)\n\n## Иҷрокунандагон\n\nОркестри симфонии Борбад зери роҳбарии дирижёр Фаррух Саидов."
                ]
                excerpt: [
                    "Симфонический концерт с произведениями Бетховена и Чайковского",
                    "Symphonic concert with works by Beethoven and Tchaikovsky",
                    "Консерти симфонӣ бо осори Бетховен ва Чайковский"
                ]
                seo: {
                    description: [
                        "Симфонический концерт в зале Борбад - классическая музыка",
                        "Symphonic concert at Borbad Hall - classical music",
                        "Консерти симфонӣ дар ҳолли Борбад - мусиқии классикӣ"
                    ]
                    keywords: [
                        ["концерт", "симфоническая музыка", "классика", "Бетховен", "Чайковский"],
                        ["concert", "symphonic music", "classical", "Beethoven", "Tchaikovsky"],
                        ["консерт", "мусиқии симфонӣ", "классикӣ", "Бетховен", "Чайковский"]
                    ]
                    title: [
                        "Симфонический концерт: Бетховен и Чайковский - Кохи Борбад",
                        "Symphonic Concert: Beethoven and Tchaikovsky - Borbad Concert Hall",
                        "Консерти симфонӣ: Бетховен ва Чайковский - Ҳолли Борбад"
                    ]
                }
                image: [
                    "/assets/borbad.s5l.ru/events/beethoven-concert.jpg"
                    "/assets/borbad.s5l.ru/events/beethoven-concert.jpg"
                    "/assets/borbad.s5l.ru/events/beethoven-concert.jpg"
                ]
                gallery: [
                    [
                        "/assets/borbad.s5l.ru/gallery/concert1.jpg"
                        "/assets/borbad.s5l.ru/gallery/concert2.jpg"
                    ],
                    [
                        "/assets/borbad.s5l.ru/gallery/concert1.jpg"
                        "/assets/borbad.s5l.ru/gallery/concert2.jpg"
                    ],
                    [
                        "/assets/borbad.s5l.ru/gallery/concert1.jpg"
                        "/assets/borbad.s5l.ru/gallery/concert2.jpg"
                    ]
                ]
                tags: [
                    ["концерт", "симфоническая музыка", "классика", "Бетховен", "Чайковский"],
                    ["concert", "symphonic music", "classical", "Beethoven", "Tchaikovsky"],
                    ["консерт", "мусиқии симфонӣ", "классикӣ", "Бетховен", "Чайковский"]
                ]
                category_id: "category_classical_music_concerts_events_borbad"
                category_path: ["category_events_borbad", "category_concerts_events_borbad", "category_classical_music_concerts_events_borbad"]
                author: ["Симфонический оркестр Борбад", "Borbad Symphony Orchestra", "Оркестри симфонии Борбад"]
                status: "published"
                featured: true
                reading_time: [4, 4, 4]
                
                # Дополнительные поля для событий
                event_data: {
                    event_date: "2024-03-20T19:00:00.000Z"
                    end_date: "2024-03-20T21:00:00.000Z"
                    location: ["Большой зал", "Main Hall", "Ҳолли асосӣ"]
                    venue_id: "venue_main_hall_borbad"
                    address: {
                        street: ["пр. Рудаки 22", "Rudaki Ave 22", "хиёбони Рӯдакӣ 22"]
                        city: ["Душанбе", "Dushanbe", "Душанбе"]
                        country: ["Таджикистан", "Tajikistan", "Тоҷикистон"]
                    }
                    coordinates: {
                        lat: 38.5732
                        lng: 68.7734
                    }
                    price: [500, 500, 500]
                    currency: "TJS"
                    available_tickets: 45
                    total_tickets: 300
                    status: "upcoming"
                    registration_required: true
                    max_attendees: 300
                    age_restriction: ["6+", "6+", "6+"]
                    organizer: ["Симфонический оркестр Борбад", "Borbad Symphony Orchestra", "Оркестри симфонии Борбад"]
                    performers: [
                        ["Фаррух Саидов (дирижер)", "Солисты оркестра"],
                        ["Farrukh Saidov (conductor)", "Orchestra soloists"],
                        ["Фаррух Саидов (дирижёр)", "Солистони оркестр"]
                    ]
                    duration: 120
                }
                
                created_at: currentDate
                updated_at: currentDate
                published_at: currentDate
                views: 289
            }

            # Товары с мультиязычными данными
            {
                _id: @generateProductId(["Футболка с логотипом Борбад", "Borbad Logo T-shirt"], "borbad")
                type: "product"
                domain: ["shop.borbad.s5l.ru", "borbad.s5l.ru"]
                language: ["ru", "en"]
                title: ["Футболка с логотипом Борбад", "Borbad Logo T-shirt"]
                content: [
                    "## Качественная хлопковая футболка\n\nРазмеры: S, M, L, XL\n\nМатериал: 100% хлопок\n\nУход: машинная стирка при 30°C",
                    "## High-quality cotton t-shirt\n\nSizes: S, M, L, XL\n\nMaterial: 100% cotton\n\nCare: machine wash at 30°C"
                ]
                excerpt: [
                    "Фирменная футболка концертного зала с логотипом",
                    "Official concert hall t-shirt with logo"
                ]
                seo: {
                    description: [
                        "Футболка с логотипом концертного зала Борбад - сувениры",
                        "T-shirt with Borbad concert hall logo - souvenirs"
                    ]
                    keywords: [
                        ["футболка", "сувениры", "мерч", "Борбад"],
                        ["t-shirt", "souvenirs", "merch", "Borbad"]
                    ]
                    title: [
                        "Футболка с логотипом Борбад - Сувениры",
                        "Borbad Logo T-shirt - Souvenirs"
                    ]
                }
                image: [
                    "/assets/borbad.s5l.ru/products/tshirt.jpg"
                    "/assets/borbad.s5l.ru/products/tshirt.jpg"
                ]
                gallery: [
                    [
                        "/assets/borbad.s5l.ru/products/tshirt-front.jpg"
                        "/assets/borbad.s5l.ru/products/tshirt-back.jpg"
                    ],
                    [
                        "/assets/borbad.s5l.ru/products/tshirt-front.jpg"
                        "/assets/borbad.s5l.ru/products/tshirt-back.jpg"
                    ]
                ]
                tags: [
                    ["одежда", "сувениры", "мерч"],
                    ["clothing", "souvenirs", "merch"]
                ]
                category_id: "category_souvenirs_borbad"
                category_path: ["category_shop_borbad", "category_souvenirs_borbad"]
                author: ["Магазин Борбад", "Borbad Shop"]
                status: "published"
                featured: true
                reading_time: [2, 2]
                
                # Дополнительные поля для товаров
                product_data: {
                    price: [250, 250]
                    currency: "TJS"
                    compare_price: [350, 350]
                    sku: "TSH-BRB-001"
                    inventory: 50
                    status: "available"
                    attributes: {
                        sizes: [["S", "M", "L", "XL"], ["S", "M", "L", "XL"]]
                        colors: [["белый", "черный", "красный"], ["white", "black", "red"]]
                        material: [["100% хлопок"], ["100% cotton"]]
                        brand: [["Борбад"], ["Borbad"]]
                    }
                    weight: 0.3
                    dimensions: {
                        length: 70
                        width: 50
                        height: 5
                    }
                    shipping: {
                        free_shipping: [false, false]
                        shipping_cost: [50, 50]
                    }
                }
                
                created_at: currentDate
                updated_at: currentDate
                published_at: currentDate
                views: 134
            }

            # Слайдеры с мультиязычными данными
            {
                _id: @generateSlideId(1, "borbad")
                type: "slide"
                domain: ["borbad.s5l.ru", "concert-hall.tj"]
                language: ["ru", "en"]
                title: ["Добро пожаловать в Кохи Борбад", "Welcome to Borbad Concert Hall"]
                content: [
                    "## Современный концертный зал в сердце Душанбе\n\nМесто, где встречаются искусство и культура",
                    "## Modern concert hall in the heart of Dushanbe\n\nA place where art and culture meet"
                ]
                excerpt: [
                    "Концертный зал Борбад - культурный центр Душанбе",
                    "Borbad Concert Hall - Dushanbe Cultural Center"
                ]
                seo: {
                    description: [
                        "Концертный зал Борбад в Душанбе",
                        "Borbad Concert Hall in Dushanbe"
                    ]
                }
                image: [
                    "/assets/borbad.s5l.ru/sliders/main-hall.jpg"
                    "/assets/borbad.s5l.ru/sliders/main-hall.jpg"
                ]
                gallery: [[], []]
                tags: [
                    ["слайдер", "главная"],
                    ["slider", "main"]
                ]
                category_id: "category_sliders_borbad"
                category_path: ["category_sliders_borbad"]
                author: ["Администрация Борбад", "Borbad Administration"]
                status: "published"
                featured: false
                reading_time: [1, 1]
                
                # Дополнительные поля для слайдеров
                slide_data: {
                    order: 1
                    active: true
                    button_text: ["Узнать больше", "Learn More"]
                    button_link: ["/about", "/about"]
                    button_style: "primary"
                    text_color: ["#ffffff", "#ffffff"]
                    text_position: ["center", "center"]
                    overlay: [true, true]
                    overlay_opacity: [0.4, 0.4]
                    mobile_image: [
                        "/assets/borbad.s5l.ru/sliders/main-hall-mobile.jpg"
                        "/assets/borbad.s5l.ru/sliders/main-hall-mobile.jpg"
                    ]
                    start_date: "2024-01-01T00:00:00.000Z"
                    end_date: "2024-12-31T23:59:59.000Z"
                    target_audience: [["all"], ["all"]]
                }
                
                created_at: "2024-01-01T00:00:00.000Z"
                updated_at: currentDate
                published_at: "2024-01-01T00:00:00.000Z"
                views: 0
            }

            # Пользователи
            {
                _id: "user_admin_main"
                type: "user"
                domain: "global"
                email: "admin@borbad.s5l.ru"
                name: ["Администратор Борбад", "Borbad Administrator"]
                role: "admin"
                active: true
                permissions: ["read", "write", "delete", "admin"]
                profile: {
                    avatar: [
                        "/assets/borbad.s5l.ru/avatars/admin.jpg"
                        "/assets/borbad.s5l.ru/avatars/admin.jpg"
                    ]
                    phone: ["+992 37 123-45-67", "+992 37 123-45-67"]
                    position: ["Системный администратор", "System Administrator"]
                    bio: ["Ответственный за техническую часть сайта", "Responsible for the technical part of the site"]
                }
                preferences: {
                    language: "ru"
                    notifications: true
                    theme: "dark"
                    timezone: "Asia/Dushanbe"
                }
                security: {
                    last_password_change: "2024-01-01T00:00:00.000Z"
                    two_factor_enabled: true
                    login_attempts: 0
                }
                domains_access: ["borbad.s5l.ru", "concert-hall.tj"]
                created_at: "2024-01-01T00:00:00.000Z"
                updated_at: currentDate
                last_login: "2024-01-15T09:30:00.000Z"
            }
        ]
        
        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
