import { NextRequest, NextResponse } from 'next/server';
import { getAdminSession } from '@/lib/auth/adminAuth';

export const dynamic = 'force-dynamic';

export async function GET(req: NextRequest) {
  try {
    const session = await getAdminSession(req);
    if (!session.authenticated || !session.user) {
      return NextResponse.json({ authenticated: false, error: session.error || 'Not authenticated' }, { status: 401 });
    }

    return NextResponse.json({
      authenticated: true,
      admin: {
        id: session.user.id,
        email: session.user.email,
        name: session.user.name,
        role: session.user.role,
        avatar_url: session.user.avatar_url,
      },
      permissions: {
        canManageStores: ['super_admin'].includes(session.user.role),
        canManageBilling: ['super_admin', 'billing_admin'].includes(session.user.role),
        canExportData: ['super_admin', 'billing_admin'].includes(session.user.role),
        canManageAdmins: session.user.role === 'super_admin',
      },
    });
  } catch (err: any) {
    return NextResponse.json({ authenticated: false, error: err?.message || 'Session verification failed' }, { status: 500 });
  }
}
