Migrated pitch-deck from breakpilot-pwa to breakpilot-core. Container: bp-core-pitch-deck on port 3012. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
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 }
|
|
)
|
|
}
|
|
}
|