import { NextResponse } from 'next/server'; import pool from '@/lib/db'; interface JenisPendaftaranLulus { tahun_angkatan: number; jenis_pendaftaran: string; jumlah_lulus_tepat_waktu: number; } export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); const tahunAngkatan = searchParams.get('tahun_angkatan'); let query = ` SELECT m.tahun_angkatan, m.jenis_pendaftaran, COUNT(m.nim) AS jumlah_lulus_tepat_waktu FROM mahasiswa m JOIN status_mahasiswa s ON m.nim = s.nim WHERE s.status_kuliah = 'Lulus' AND s.semester <= 8 `; const queryParams: any[] = []; if (tahunAngkatan && tahunAngkatan !== 'all') { query += ` AND m.tahun_angkatan = ?`; queryParams.push(parseInt(tahunAngkatan)); } query += ` GROUP BY m.tahun_angkatan, m.jenis_pendaftaran ORDER BY m.tahun_angkatan DESC, m.jenis_pendaftaran `; const [rows] = await pool.query(query, queryParams); return NextResponse.json(rows); } catch (error) { console.error('Detailed error in GET /api/mahasiswa/jenis-pendaftaran-lulus:', error); return NextResponse.json( { error: 'Internal Server Error', details: error instanceof Error ? error.message : 'Unknown error' }, { status: 500 } ); } }