import { ConnectedAircraft, PositionLog, Prisma, PublicUser, Station } from "@repo/db";
import axios from "axios";
import { serverApi } from "_helpers/axios";

export const getConnectedAircraftsAPI = async () => {
	const res = await axios.get<(ConnectedAircraft & { Station: Station })[]>("/api/aircrafts"); // return only connected aircrafts
	if (res.status !== 200) {
		throw new Error("Failed to fetch stations");
	}
	return res.data;
};

export const editConnectedAircraftAPI = async (
	id: number,
	mission: Prisma.ConnectedAircraftUpdateInput,
) => {
	const respone = await serverApi.patch<ConnectedAircraft>(`/aircrafts/${id}`, mission);
	return respone.data;
};

export const getConnectedAircraftPositionLogAPI = async ({ id }: { id: number }) => {
	const res = await axios.get<PositionLog[]>("/api/aircrafts/positionlog", {
		params: { connectedAircraftId: id },
	});
	if (res.status !== 200) {
		throw new Error("Failed to fetch aircraft position log");
	}
	return res.data;
};

export const kickAircraftAPI = async ({ id, bann }: { id: number; bann?: boolean }) => {
	const res = await serverApi.delete(`/aircrafts/${id}`, {
		data: { bann },
	});
	console.log(res.status);
	if (res.status != 204) {
		throw new Error("Failed to kick aircraft");
	}
	return res.data;
};
