import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function testGraphQLStats() {
  try {
    console.log('🔍 ТЕСТИРОВАНИЕ ЛОГИКИ РЕЗОЛВЕРА getWildberriesStatistics')

    // Имитируем логику резолвера
    const user = await prisma.user.findFirst({
      where: { phone: '79988888888' },
      include: {
        organization: {
          include: { apiKeys: true },
        },
      },
    })

    if (!user?.organization) {
      console.log('❌ Пользователь не привязан к организации')
      return
    }

    console.log('\n👤 ПОЛЬЗОВАТЕЛЬ:')
    console.log('- ID:', user.id)
    console.log('- Телефон:', user.phone)
    console.log('- Организация:', user.organization.name)

    // Логика поиска API ключа как в резолвере
    const apiKey = user.organization.apiKeys.find((key) => key.marketplace === 'WILDBERRIES' && key.isActive)

    console.log('\n🔍 ПОИСК API КЛЮЧА:')
    console.log('- Всего ключей в организации:', user.organization.apiKeys.length)
    console.log('- Найденный ключ:', !!apiKey)

    if (!apiKey) {
      console.log('❌ ПРОБЛЕМА: API ключ не найден через find()')

      // Выводим все ключи для дебага
      user.organization.apiKeys.forEach((key, index) => {
        console.log(`\n--- КЛЮЧ ${index + 1} ---`)
        console.log('- ID:', key.id)
        console.log('- Marketplace:', key.marketplace)
        console.log('- Active:', key.isActive)
        console.log('- Условие WILDBERRIES:', key.marketplace === 'WILDBERRIES')
        console.log('- Условие Active:', key.isActive === true)
        console.log('- Полное условие:', key.marketplace === 'WILDBERRIES' && key.isActive)
      })

      return
    }

    console.log('\n✅ API КЛЮЧ НАЙДЕН:')
    console.log('- ID:', apiKey.id)
    console.log('- Marketplace:', apiKey.marketplace)
    console.log('- Active:', apiKey.isActive)
    console.log('- Длина ключа:', apiKey.apiKey?.length)
    console.log('- Тип:', apiKey.apiKey?.startsWith('eyJ') ? 'JWT' : 'Другой')

    // Проверим, работает ли сам API ключ
    console.log('\n🌐 ТЕСТИРОВАНИЕ ЗАПРОСА К WILDBERRIES API:')

    const testUrl = 'https://statistics-api.wildberries.ru/api/v1/supplier/sales?dateFrom=2025-09-01'

    try {
      const response = await fetch(testUrl, {
        headers: {
          Authorization: apiKey.apiKey,
          'Content-Type': 'application/json',
        },
      })

      console.log('- HTTP статус:', response.status)
      console.log('- OK:', response.ok)

      if (response.ok) {
        const data = await response.json()
        console.log('- Данные получены, тип:', typeof data)
        console.log('- Является массивом:', Array.isArray(data))
        console.log('- Длина:', data?.length || 'N/A')
      } else {
        const errorText = await response.text()
        console.log('- Ошибка API:', errorText)
      }
    } catch (fetchError) {
      console.error('❌ ОШИБКА ЗАПРОСА:', fetchError.message)
    }
  } catch (error) {
    console.error('❌ КРИТИЧЕСКАЯ ОШИБКА:', error)
  } finally {
    await prisma.$disconnect()
  }
}

testGraphQLStats()
