import prisma from '../lib/prisma'

/**
 * Setup OpenAI as default AI provider in database
 * Run this to ensure OpenAI is properly configured
 */
async function setupOpenAI() {
  console.log('🔧 Setting up OpenAI as default AI provider...\n')

  const configs = [
    { key: 'AI_PROVIDER_TAGS', value: 'openai' },
    { key: 'AI_PROVIDER_EMBEDDING', value: 'openai' },
    { key: 'AI_MODEL_TAGS', value: 'gpt-4o-mini' },
    { key: 'AI_MODEL_EMBEDDING', value: 'text-embedding-3-small' },
  ]

  try {
    for (const config of configs) {
      await prisma.systemConfig.upsert({
        where: { key: config.key },
        update: { value: config.value },
        create: { key: config.key, value: config.value }
      })
      console.log(`✅ Set ${config.key} = ${config.value}`)
    }

    console.log('\n✨ OpenAI configuration complete!')
    console.log('\nNext steps:')
    console.log('1. Add your OPENAI_API_KEY in admin settings: http://localhost:3000/admin/settings')
    console.log('2. Or add it to .env.docker: OPENAI_API_KEY=sk-...')
    console.log('3. Restart the application')

    // Verify
    const verify = await prisma.systemConfig.findMany({
      where: { key: { in: configs.map(c => c.key) } }
    })

    console.log('\n✅ Verification:')
    verify.forEach(c => console.log(`   ${c.key}: ${c.value}`))
  } catch (error) {
    console.error('❌ Error:', error)
    process.exit(1)
  }
}

setupOpenAI()
  .then(() => process.exit(0))
  .catch(() => process.exit(1))
