
import { NextResponse } from 'next/server';
import { PrismaClient } from '@prisma/client';
import { getServerSession } from "next-auth/next";
import { authOptions } from "@/lib/auth";

export const dynamic = "force-dynamic";

const prisma = new PrismaClient();

export async function GET() {
  try {
    const session = await getServerSession(authOptions);
    
    if (!session?.user || session.user.rol !== 'admin') {
      return NextResponse.json(
        { error: 'No autorizado' },
        { status: 401 }
      );
    }

    const [inscripciones, escuelas, instructores, albums] = await Promise.all([
      prisma.inscripcion.count(),
      prisma.escuela.count(),
      prisma.instructor.count(),
      prisma.album.count(),
    ]);

    return NextResponse.json({
      inscripciones,
      escuelas,
      instructores,
      albums,
    });

  } catch (error) {
    console.error('Error fetching admin stats:', error);
    return NextResponse.json(
      { error: 'Error al obtener estadísticas' },
      { status: 500 }
    );
  } finally {
    await prisma.$disconnect();
  }
}
