import { PrismaClient } from "@prisma/client"; import { CreateInstanceRequest } from "../validators/instanceValidator"; import { getUserCredentials, getUserInformation } from "./userService"; const prisma = new PrismaClient(); export async function createInstance(data: CreateInstanceRequest) { try { const creds = await getUserCredentials(data.requestingUserId); const user = await getUserInformation(data.requestingUserId); if ( !creds || creds.token != data.requestingUserToken || !user || !user.admin ) { return null; } const newInstance = await prisma.instance.create({ data: { name: data.name, icon: data.icon, }, }); return { success: true, data: newInstance, }; } catch (error) { console.error("Error creating instance:", error); return { success: false, error: "Failed to create instance", }; } } export async function getAllInstances() { try { const instances = await prisma.instance.findMany({ orderBy: { createdAt: "desc", }, }); return { success: true, data: instances, }; } catch (error) { console.error("Error fetching instances:", error); return { success: false, error: "Failed to fetch instances", }; } }