import { prisma, User } from "@repo/db"; import { Socket, Server } from "socket.io"; export const handleConnectDesktop = (socket: Socket, io: Server) => () => { const user = socket.data.user as User; socket.join(`user:${user.id}`); socket.join(`desktop:${user.id}`); socket.on("ptt", async (data) => { socket.to(`user:${user.id}`).emit("ptt", data); const connectedAircraft = await prisma.connectedAircraft.findFirst({ where: { userId: user.id, logoutTime: null, }, include: { Station: true, }, }); const connectedDispatcher = await prisma.connectedDispatcher.findFirst({ where: { userId: user.id, logoutTime: null, }, }); socket.to("pilots").emit("other-ptt", { publicUser: user.publicId, source: connectedAircraft?.Station.bosCallsignShort || connectedDispatcher ? "Leitstelle" : user.publicId, }); }); };