"use server"; import { prisma } from "@/lib/prisma"; // Layout Configuration Actions export async function getLayoutConfigurations() { try { const configurations = await prisma.layoutConfiguration.findMany({ include: { sections: { include: { fields: true, }, }, }, orderBy: { createdAt: "desc", }, }); return { success: true, data: configurations }; } catch (error) { console.error("Error fetching layout configurations:", error); return { success: false, error: "Failed to fetch layout configurations" }; } } export async function getLayoutConfiguration(id: number) { try { const configuration = await prisma.layoutConfiguration.findUnique({ where: { id }, include: { sections: { include: { fields: true, }, orderBy: { createdAt: "asc", }, }, }, }); if (!configuration) { return { success: false, error: "Layout configuration not found" }; } return { success: true, data: configuration }; } catch (error) { console.error("Error fetching layout configuration:", error); return { success: false, error: "Failed to fetch layout configuration" }; } } export async function getLayoutSections(configurationId: number) { try { const sections = await prisma.layoutSection.findMany({ where: { configurationId }, include: { fields: { orderBy: { importColumnOrderNumber: "asc", }, }, }, orderBy: { createdAt: "asc", }, }); return { success: true, data: sections }; } catch (error) { console.error("Error fetching layout sections:", error); return { success: false, error: "Failed to fetch layout sections" }; } } export async function getLayoutSectionFields(sectionId: number) { try { const fields = await prisma.layoutSectionField.findMany({ where: { layoutSectionId: sectionId }, orderBy: { importColumnOrderNumber: "asc", }, }); return { success: true, data: fields }; } catch (error) { console.error("Error fetching layout section fields:", error); return { success: false, error: "Failed to fetch layout section fields" }; } } // Create new layout configuration export async function createLayoutConfiguration(name: string) { try { const configuration = await prisma.layoutConfiguration.create({ data: { name, }, }); return { success: true, data: configuration }; } catch (error) { console.error("Error creating layout configuration:", error); return { success: false, error: "Failed to create layout configuration" }; } } // Update layout configuration export async function updateLayoutConfiguration(id: number, name: string) { try { const configuration = await prisma.layoutConfiguration.update({ where: { id }, data: { name, }, }); return { success: true, data: configuration }; } catch (error) { console.error("Error updating layout configuration:", error); return { success: false, error: "Failed to update layout configuration" }; } } // Delete layout configuration export async function deleteLayoutConfiguration(id: number) { try { await prisma.layoutConfiguration.delete({ where: { id }, }); return { success: true }; } catch (error) { console.error("Error deleting layout configuration:", error); return { success: false, error: "Failed to delete layout configuration" }; } }