"use server"; import { prisma } from "@/lib/prisma"; import { revalidatePath } from "next/cache"; import { InterviewType, ContentStatus } from "@prisma/client"; import { generateSlug } from "@/lib/utils"; export async function createInterview(data: { title: string; slug?: string; guestName: string; companyName: string; role: string; type: InterviewType; thumbnailUrl: string; videoUrl?: string; content?: string; excerpt: string; duration?: string; tags?: string[]; metaTitle?: string; metaDescription?: string; publishedAt?: Date; status?: ContentStatus; }) { try { const slug = data.slug || generateSlug(data.title); const interview = await prisma.interview.create({ data: { ...data, slug, tags: data.tags || [], publishedAt: data.publishedAt || new Date(), status: data.status || ContentStatus.PUBLISHED, }, }); revalidatePath("/blog"); return { success: true, data: interview }; } catch (error) { console.error("Failed to create interview:", error); return { success: false, error: "Erreur lors de la création de l'interview" }; } } export async function updateInterview(id: string, data: { title: string; slug?: string; guestName: string; companyName: string; role: string; type: InterviewType; thumbnailUrl: string; videoUrl?: string; content?: string; excerpt: string; duration?: string; tags?: string[]; metaTitle?: string; metaDescription?: string; publishedAt?: Date; status?: ContentStatus; }) { try { const slug = data.slug || generateSlug(data.title); const interview = await prisma.interview.update({ where: { id }, data: { ...data, slug, tags: data.tags || [], }, }); revalidatePath("/blog"); return { success: true, data: interview }; } catch (error) { console.error("Failed to update interview:", error); return { success: false, error: "Erreur lors de la mise à jour" }; } } export async function deleteInterview(id: string) { try { await prisma.interview.delete({ where: { id }, }); revalidatePath("/blog"); return { success: true }; } catch (error) { console.error("Failed to delete interview:", error); return { success: false, error: "Erreur lors de la suppression" }; } }