// app/api/dashboard/route.ts // API endpoint for dashboard data import { query } from '@/lib/db'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; export async function GET() { try { const sql = ` SELECT u.driver_guid, u.driver_name, u.driver_team, u.car_model, u.car_skin, u.user_rank, u.laps_completed, s.server_id, s.server_name, s.server_track, s.server_config, s.session_type, s.session_flag, s.session_time, s.session_laps, s.session_elapsed_time, s.session_ambient_temp, s.session_road_temp, s.connected_players FROM users u INNER JOIN servers s ON u.current_server = s.server_id WHERE u.is_connect = true ORDER BY s.server_id, u.user_rank ASC `; const rows = await query(sql); const drivers = rows.map((row: any) => ({ driver_guid: row.driver_guid, driver_name: row.driver_name, driver_team: row.driver_team, car_model: row.car_model, car_skin: row.car_skin, laps_completed: row.laps_completed, user_rank: row.user_rank, server: { server_id: row.server_id, server_name: row.server_name, server_track: row.server_track, server_config: row.server_config, session_type: row.session_type, session_flag: row.session_flag, session_time: row.session_time, session_laps: row.session_laps, session_elapsed_time: row.session_elapsed_time, session_ambient_temp: row.session_ambient_temp, session_road_temp: row.session_road_temp, connected_players: row.connected_players, }, })); return NextResponse.json({ drivers }); } catch (error) { console.error('[Dashboard API] Error:', error); return NextResponse.json({ error: 'Failed to fetch dashboard data' }, { status: 500 }); } }