diff --git a/src/app/dashboard/halls/[id]/actions.ts b/src/app/dashboard/halls/[id]/actions.ts new file mode 100644 index 0000000..c6d0ea1 --- /dev/null +++ b/src/app/dashboard/halls/[id]/actions.ts @@ -0,0 +1,37 @@ +'use server' + +import { createClient } from "@/lib/supabase/server" +import { revalidatePath } from "next/cache" +import { logAction } from "@/lib/logger" + +export async function deleteHall(id: string) { + const supabase = await createClient() + + const { error } = await supabase + .from('halls') + .delete() + .eq('id', id) + + if (error) throw new Error(error.message) + + await logAction('delete_hall', 'hall', id) + revalidatePath('/dashboard/halls') +} + +export async function updateHall(id: string, data: { name: string; capacity: number; description?: string }) { + const supabase = await createClient() + + const { error } = await supabase + .from('halls') + .update({ + name: data.name, + capacity: data.capacity, + description: data.description, + }) + .eq('id', id) + + if (error) throw new Error(error.message) + + await logAction('update_hall', 'hall', id, data) + revalidatePath('/dashboard/halls') +} diff --git a/src/app/dashboard/halls/new/actions.ts b/src/app/dashboard/halls/new/actions.ts index c66a114..a551738 100644 --- a/src/app/dashboard/halls/new/actions.ts +++ b/src/app/dashboard/halls/new/actions.ts @@ -3,18 +3,25 @@ import { createClient } from "@/lib/supabase/server" import { revalidatePath } from "next/cache" +import { logAction } from "@/lib/logger" + export async function createHall(data: { name: string; capacity: number; description?: string }) { const supabase = await createClient() - const { error } = await supabase.from('halls').insert({ + const { data: newHall, error } = await supabase.from('halls').insert({ name: data.name, capacity: data.capacity, description: data.description, - }) + }).select().single() if (error) { throw new Error(error.message) } + await logAction('create_hall', 'hall', newHall.id, { + name: data.name, + capacity: data.capacity + }) + revalidatePath('/dashboard/halls') } diff --git a/src/app/dashboard/reservations/[id]/actions.ts b/src/app/dashboard/reservations/[id]/actions.ts index 054b32a..539a75e 100644 --- a/src/app/dashboard/reservations/[id]/actions.ts +++ b/src/app/dashboard/reservations/[id]/actions.ts @@ -47,3 +47,17 @@ export async function updateStatus(id: string, status: string) { revalidatePath(`/dashboard/reservations/${id}`) revalidatePath('/dashboard/reservations') } + +export async function deleteReservation(id: string) { + const supabase = await createClient() + + const { error } = await supabase + .from('reservations') + .delete() + .eq('id', id) + + if (error) throw new Error(error.message) + + await logAction('delete_reservation', 'reservation', id) + revalidatePath('/dashboard/reservations') +} diff --git a/src/app/dashboard/settings/packages/[id]/actions.ts b/src/app/dashboard/settings/packages/[id]/actions.ts new file mode 100644 index 0000000..0ef8a51 --- /dev/null +++ b/src/app/dashboard/settings/packages/[id]/actions.ts @@ -0,0 +1,38 @@ +'use server' + +import { createClient } from "@/lib/supabase/server" +import { revalidatePath } from "next/cache" +import { logAction } from "@/lib/logger" + +export async function deletePackage(id: string) { + const supabase = await createClient() + + const { error } = await supabase + .from('packages') + .delete() + .eq('id', id) + + if (error) throw new Error(error.message) + + await logAction('delete_package', 'package', id) + revalidatePath('/dashboard/settings/packages') +} + +export async function updatePackage(id: string, data: { name: string; price: number; description?: string; is_active: boolean }) { + const supabase = await createClient() + + const { error } = await supabase + .from('packages') + .update({ + name: data.name, + price: data.price, + description: data.description, + is_active: data.is_active, + }) + .eq('id', id) + + if (error) throw new Error(error.message) + + await logAction('update_package', 'package', id, data) + revalidatePath('/dashboard/settings/packages') +} diff --git a/src/app/dashboard/settings/packages/new/actions.ts b/src/app/dashboard/settings/packages/new/actions.ts index 98ad505..56de83b 100644 --- a/src/app/dashboard/settings/packages/new/actions.ts +++ b/src/app/dashboard/settings/packages/new/actions.ts @@ -3,19 +3,26 @@ import { createClient } from "@/lib/supabase/server" import { revalidatePath } from "next/cache" +import { logAction } from "@/lib/logger" + export async function createPackage(data: { name: string; price: number; description?: string; is_active: boolean }) { const supabase = await createClient() - const { error } = await supabase.from('packages').insert({ + const { data: newPackage, error } = await supabase.from('packages').insert({ name: data.name, price: data.price, description: data.description, is_active: data.is_active, - }) + }).select().single() if (error) { throw new Error(error.message) } + await logAction('create_package', 'package', newPackage.id, { + name: data.name, + price: data.price + }) + revalidatePath('/dashboard/settings/packages') }