import { listSpielplanSeasons, readSpielplanData, validateSeasonSlug } from '../utils/spielplan-data.js'
import { error as loggerError } from '../utils/logger.js'

export default defineEventHandler(async (event) => {
  try {
    const query = getQuery(event)
    if (query.season && !validateSeasonSlug(query.season)) {
      loggerError('Ungueltiger Saison-Slug angefragt', { season: query.season })
      return {
        success: false,
        message: 'Ungueltiger Saison-Slug',
        data: [],
        headers: []
      }
    }
    const [spielplan, seasons] = await Promise.all([
      readSpielplanData({ season: query.season }),
      listSpielplanSeasons()
    ])

    if (!spielplan.data.length || !spielplan.headers.length) {
      return {
        success: false,
        message: 'Spielplan-Datei nicht gefunden oder leer',
        data: [],
        headers: []
      }
    }

    return {
      success: true,
      message: 'Spielplan erfolgreich geladen',
      data: spielplan.data,
      headers: spielplan.headers,
      source: spielplan.source,
      filePath: spielplan.filePath,
      season: spielplan.season,
      seasons
    }
  } catch (error) {
    loggerError('Fehler beim Laden des Spielplans:', { error })
    return {
      success: false,
      message: 'Fehler beim Laden des Spielplans',
      data: [],
      headers: []
    }
  }
})
