import { PrismaClient } from '@prisma/client'
import { WildberriesService } from './src/services/wildberries-service.js'

const prisma = new PrismaClient()

async function testStatisticsDirect() {
  try {
    console.log('🔍 ПРЯМОЕ ТЕСТИРОВАНИЕ СТАТИСТИКИ WILDBERRIES')

    // Найдем пользователя 79988888888
    const user = await prisma.user.findFirst({
      where: { phone: '79988888888' },
      include: {
        organization: {
          include: {
            apiKeys: {
              where: { marketplace: 'WILDBERRIES', isActive: true },
            },
          },
        },
      },
    })

    if (!user?.organization?.apiKeys[0]) {
      console.log('❌ API ключ не найден')
      return
    }

    const apiKey = user.organization.apiKeys[0]
    console.log('\n🔑 НАЙДЕННЫЙ API КЛЮЧ:')
    console.log('- ID:', apiKey.id)
    console.log('- Длина:', apiKey.apiKey?.length)
    console.log('- Первые 10 символов:', apiKey.apiKey?.substring(0, 10))
    console.log('- Активен:', apiKey.isActive)

    // Тестируем WildberriesService напрямую
    console.log('\n🧪 ТЕСТИРОВАНИЕ WILDBERRIES SERVICE:')

    try {
      const wbService = new WildberriesService(apiKey.apiKey)
      console.log('✅ WildberriesService создан успешно')

      // Тестируем получение статистики
      const startDate = '2025-09-01'
      const endDate = '2025-09-18'

      console.log(`\n📊 ЗАПРОС СТАТИСТИКИ (${startDate} - ${endDate}):`)

      const statistics = await wbService.getStatistics(startDate, endDate)

      console.log('✅ СТАТИСТИКА ПОЛУЧЕНА:')
      console.log('- Тип данных:', typeof statistics)
      console.log('- Является массивом:', Array.isArray(statistics))
      console.log('- Длина:', statistics?.length || 'N/A')

      if (Array.isArray(statistics) && statistics.length > 0) {
        console.log('- Первая запись:', JSON.stringify(statistics[0], null, 2))
      } else {
        console.log('- Данные пусты или отсутствуют')
      }
    } catch (serviceError) {
      console.error('❌ ОШИБКА WILDBERRIES SERVICE:', serviceError.message)
      console.error('Стек:', serviceError.stack)
    }

    // Проверим что API ключ имеет правильные права доступа
    console.log('\n🔐 ПРОВЕРКА ПРАВ API КЛЮЧА:')
    console.log('- Данные валидации:', JSON.stringify(apiKey.validationData, null, 2))

    if (apiKey.validationData?.sellerId) {
      console.log('✅ SellerId найден:', apiKey.validationData.sellerId)
    } else {
      console.log('❌ SellerId отсутствует')
    }
  } catch (error) {
    console.error('❌ КРИТИЧЕСКАЯ ОШИБКА:', error)
  } finally {
    await prisma.$disconnect()
  }
}

testStatisticsDirect()
