import { NextResponse } from 'next/server'
import { getCurrentUser } from '@/lib/auth'
import { getCharactersByDiscordId } from '@/lib/services/character-service'

export const dynamic = 'force-dynamic'

export async function GET() {
  try {
    const user = await getCurrentUser()
    
    if (!user) {
      return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
    }

    // Use the user's Discord ID to find their characters in the game database
    const discordId = user.discordId
    
    if (!discordId) {
      return NextResponse.json({ 
        error: 'No Discord ID linked',
        characters: [],
        message: 'Your account is not linked to a Discord ID'
      })
    }

    // Fetch characters from game database using Discord ID
    const characters = await getCharactersByDiscordId(discordId)
    
    if (characters.length === 0) {
      return NextResponse.json({
        characters: [],
        message: 'No characters found. Please join the FiveM server first to link your account.',
        discordId: discordId,
      })
    }

    return NextResponse.json({
      characters,
      discordId,
      count: characters.length,
    })
  } catch (error) {
    console.error('[API] Error fetching player characters:', error)
    return NextResponse.json(
      { error: 'Failed to fetch characters', characters: [] },
      { status: 500 }
    )
  }
}
