"use server"; import { prisma } from "@/lib/prisma"; import { revalidatePath } from "next/cache"; export async function getSlides() { try { return await prisma.homeSlide.findMany({ orderBy: { order: 'asc' }, include: { business: true } }); } catch (error) { console.error("Failed to get slides:", error); return []; } } export async function createSlide(data: any) { try { await prisma.homeSlide.create({ data: { type: data.type, businessId: data.businessId || null, title: data.title || null, subtitle: data.subtitle || null, imageUrl: data.imageUrl || null, linkUrl: data.linkUrl || null, order: data.order || 0, isActive: data.isActive ?? true, } }); revalidatePath("/slides"); return { success: true }; } catch (error) { console.error("Failed to create slide:", error); return { success: false, error: "Erreur lors de la création" }; } } export async function updateSlide(id: string, data: any) { try { await prisma.homeSlide.update({ where: { id }, data: { type: data.type, businessId: data.businessId || null, title: data.title || null, subtitle: data.subtitle || null, imageUrl: data.imageUrl || null, linkUrl: data.linkUrl || null, order: data.order || 0, isActive: data.isActive ?? true, } }); revalidatePath("/slides"); return { success: true }; } catch (error) { console.error("Failed to update slide:", error); return { success: false, error: "Erreur lors de la mise à jour" }; } } export async function deleteSlide(id: string) { try { await prisma.homeSlide.delete({ where: { id } }); revalidatePath("/slides"); return { success: true }; } catch (error) { console.error("Failed to delete slide:", error); return { success: false, error: "Erreur lors de la suppression" }; } } export async function toggleSlideStatus(id: string, currentStatus: boolean) { try { await prisma.homeSlide.update({ where: { id }, data: { isActive: !currentStatus } }); revalidatePath("/slides"); return { success: true }; } catch (error) { console.error("Failed to toggle slide status:", error); return { success: false, error: "Erreur lors de la mise à jour" }; } } export async function searchBusinesses(query: string) { try { return await prisma.business.findMany({ where: { OR: [ { name: { contains: query, mode: 'insensitive' } }, { location: { contains: query, mode: 'insensitive' } }, ], isActive: true, }, take: 10, select: { id: true, name: true, logoUrl: true, location: true, } }); } catch (error) { console.error("Failed to search businesses:", error); return []; } }