import { NextRequest, NextResponse } from "next/server";
import { Prisma, prisma } from "@repo/db";

export async function GET(request: NextRequest): Promise<NextResponse> {
	try {
		const config = await prisma.config.findFirst({
			orderBy: {
				createdAt: "desc",
			},
		});
		const filter = JSON.parse(
			new URL(request.url).searchParams.get("filter") || "{}",
		) as Prisma.ConnectedAircraftWhereInput;

		const connectedAircraft = await prisma.connectedAircraft.findMany({
			where: {
				logoutTime: null,
				...filter, // Ensure filter is parsed correctly
			},
			include: {
				Station: true,
			},
		});
		return NextResponse.json(
			connectedAircraft.map((a) => ({
				...a,
				posH145active: config?.disableHPG ? false : a.posH145active,
			})),
			{
				status: 200,
			},
		);
	} catch (error) {
		console.error(error);
		return NextResponse.json({ error: "Failed to fetch Aircrafts" }, { status: 500 });
	}
}
