import { NextResponse } from 'next/server'
import pool from '@/lib/db'
import { SHEET_LIST } from '@/lib/finanzplan/types'

export async function GET() {
  try {
    const scenarios = await pool.query('SELECT * FROM fp_scenarios ORDER BY is_default DESC, name')

    // Get row counts per sheet
    const sheets = await Promise.all(
      SHEET_LIST.map(async (s) => {
        const tableName = `fp_${s.name}`
        try {
          const { rows } = await pool.query(
            `SELECT COUNT(*) as total, COUNT(*) FILTER (WHERE is_editable = true) as editable FROM ${tableName} WHERE scenario_id = (SELECT id FROM fp_scenarios WHERE is_default = true LIMIT 1)`
          )
          return { ...s, rows: parseInt(rows[0]?.total || '0'), editable_rows: parseInt(rows[0]?.editable || '0') }
        } catch {
          return s
        }
      })
    )

    return NextResponse.json({
      sheets,
      scenarios: scenarios.rows,
      months: { start: '2026-01', end: '2030-12', count: 60, founding: '2026-08' },
    }, {
      headers: { 'Cache-Control': 'no-store' },
    })
  } catch (error) {
    return NextResponse.json({ error: String(error) }, { status: 500 })
  }
}
