import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { db } from '@/lib/db'; // GET /api/sites - List sites for user's organization export async function GET(request: NextRequest) { try { const session = await getServerSession(authOptions); if (!session?.user) { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ); } const sites = await db.site.findMany({ where: { organizationId: session.user.organizationId, isActive: true, }, select: { id: true, name: true, slug: true, address: true, phone: true, email: true, timezone: true, openTime: true, closeTime: true, _count: { select: { courts: { where: { isActive: true, }, }, }, }, }, orderBy: { name: 'asc', }, }); // Transform to include court count at top level const transformedSites = sites.map((site) => ({ id: site.id, name: site.name, slug: site.slug, address: site.address, phone: site.phone, email: site.email, timezone: site.timezone, openTime: site.openTime, closeTime: site.closeTime, courtCount: site._count.courts, })); return NextResponse.json(transformedSites); } catch (error) { console.error('Error fetching sites:', error); return NextResponse.json( { error: 'Failed to fetch sites' }, { status: 500 } ); } }