"use server"; import { unlink } from "node:fs/promises"; import { prisma } from "@streamclipper/db"; import { revalidatePath } from "next/cache"; export async function addChannel(formData: FormData) { const name = String(formData.get("name") ?? "").trim(); const youtubeHandle = String(formData.get("youtubeHandle") ?? "").trim(); const channelId = String(formData.get("channelId") ?? "").trim(); if (!name || !youtubeHandle || !channelId) { throw new Error("Kanal adı, handle ve channel_id alanları zorunlu."); } await prisma.channel.create({ data: { name, youtubeHandle, channelId, isActive: true }, }); revalidatePath("/"); } export async function deleteRawSegment(segmentId: string) { const segment = await prisma.rawSegment.findUnique({ where: { id: segmentId } }); if (!segment) return; await prisma.candidateSegment.deleteMany({ where: { rawSegmentId: segmentId } }); await prisma.rawSegment.delete({ where: { id: segmentId } }); await unlink(segment.filePath).catch(() => {}); revalidatePath("/segments"); revalidatePath("/", "layout"); } export async function deleteCandidateSegment(candidateId: string) { await prisma.candidateSegment.delete({ where: { id: candidateId } }); revalidatePath("/segments"); revalidatePath("/", "layout"); }