import { Mission, MissionSdsLog, MissionSdsStatusLog, Prisma } from "@repo/db"; import axios from "axios"; import { serverApi } from "_helpers/axios"; export const getMissionsAPI = async ( filter?: Prisma.MissionWhereInput, include?: Prisma.MissionInclude, orderBy?: Prisma.MissionOrderByWithRelationInput, ): Promise => { const res = await axios.get("/api/missions", { params: { filter: JSON.stringify(filter), include: JSON.stringify(include), orderBy: JSON.stringify(orderBy), }, }); if (res.status !== 200) { throw new Error("Failed to fetch stations"); } return res.data; }; export const createMissionAPI = async (mission: Prisma.MissionCreateInput) => { const response = await serverApi.put("/mission", mission); return response.data; }; export const editMissionAPI = async (id: number, mission: Prisma.MissionUpdateInput) => { const respone = await serverApi.patch(`/mission/${id}`, mission); return respone.data; }; export const sendSdsStatusMessageAPI = async ({ sdsMessage, aircraftId, }: { aircraftId: number; sdsMessage: MissionSdsStatusLog; }) => { const respone = await serverApi.post(`/aircrafts/${aircraftId}/send-sds-message`, { sdsMessage, }); return respone.data; }; export const sendSdsMessageAPI = async ({ missionId, sdsMessage, }: { missionId?: number; sdsMessage: MissionSdsLog; }) => { const respone = await serverApi.post(`/mission/send-sds`, { sdsMessage, missionId }); return respone.data; }; export const startHpgValidation = async ( id: number, config?: { alertWhenValid?: boolean; }, ) => { const respone = await serverApi.post(`/mission/${id}/validate-hpg`, config); return respone.data; }; export const sendMissionAPI = async ( id: number, { stationId, vehicleName, desktopOnly, }: { stationId?: number; vehicleName?: "RTW" | "POL" | "FW"; desktopOnly?: boolean; }, ) => { const respone = await serverApi.post<{ message: string; }>(`/mission/${id}/send-alert`, { stationId, vehicleName, desktopOnly, }); return respone.data; }; export const deleteMissionAPI = async (id: number) => { await serverApi.delete(`/mission/${id}`); };