import { promises as fs } from 'fs'
import path from 'path'

export default defineEventHandler(async (event) => {
  try {
    const cwd = process.cwd()

    // Prefer internal server/data, fallback to public/data
    let csvPath
    if (cwd.endsWith('.output')) {
      csvPath = path.join(cwd, '../server/data/vereinsmeisterschaften.csv')
      if (!(await fs.access(csvPath).then(()=>true).catch(()=>false))) {
        csvPath = path.join(cwd, '../public/data/vereinsmeisterschaften.csv')
      }
    } else {
      csvPath = path.join(cwd, 'server/data/vereinsmeisterschaften.csv')
      if (!(await fs.access(csvPath).then(()=>true).catch(()=>false))) {
        csvPath = path.join(cwd, 'public/data/vereinsmeisterschaften.csv')
      }
    }

    // CSV-Datei direkt als Text zurückgeben (keine Caching-Probleme)
    const csv = await fs.readFile(csvPath, 'utf-8')
    
    // Setze Content-Type und Cache-Control Header
    setHeader(event, 'Content-Type', 'text/csv; charset=utf-8')
    setHeader(event, 'Cache-Control', 'no-cache, no-store, must-revalidate')
    setHeader(event, 'Pragma', 'no-cache')
    setHeader(event, 'Expires', '0')
    
    return csv
  } catch (error) {
    if (error.code === 'ENOENT') {
      throw createError({
        statusCode: 404,
        statusMessage: 'Vereinsmeisterschaften-Datei nicht gefunden'
      })
    }
    console.error('Fehler beim Laden der Vereinsmeisterschaften:', error)
    throw createError({
      statusCode: 500,
      statusMessage: 'Fehler beim Laden der Vereinsmeisterschaften'
    })
  }
})

