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

export const dynamic = 'force-dynamic'

export async function GET() {
  try {
    const client = await pool.connect()

    try {
      const [
        companyRes,
        teamRes,
        financialsRes,
        marketRes,
        competitorsRes,
        featuresRes,
        milestonesRes,
        metricsRes,
        fundingRes,
        productsRes,
      ] = await Promise.all([
        client.query('SELECT * FROM pitch_company LIMIT 1'),
        client.query('SELECT * FROM pitch_team ORDER BY sort_order'),
        client.query('SELECT * FROM pitch_financials ORDER BY year'),
        client.query('SELECT * FROM pitch_market ORDER BY id'),
        client.query('SELECT * FROM pitch_competitors ORDER BY id'),
        client.query('SELECT * FROM pitch_features ORDER BY sort_order'),
        client.query('SELECT * FROM pitch_milestones ORDER BY sort_order'),
        client.query('SELECT * FROM pitch_metrics ORDER BY id'),
        client.query('SELECT * FROM pitch_funding LIMIT 1'),
        client.query('SELECT * FROM pitch_products ORDER BY sort_order'),
      ])

      return NextResponse.json({
        company: companyRes.rows[0] || null,
        team: teamRes.rows,
        financials: financialsRes.rows,
        market: marketRes.rows,
        competitors: competitorsRes.rows,
        features: featuresRes.rows,
        milestones: milestonesRes.rows,
        metrics: metricsRes.rows,
        funding: fundingRes.rows[0] || null,
        products: productsRes.rows,
      })
    } finally {
      client.release()
    }
  } catch (error) {
    console.error('Database query error:', error)
    return NextResponse.json(
      { error: 'Failed to load pitch data' },
      { status: 500 }
    )
  }
}
