'use server' import { createClient } from "@/lib/supabase-server" import { Customer, CustomerInsert, CustomerUpdate } from "@/types/customer" import { revalidatePath } from "next/cache" // Get all customers export async function getCustomers() { const supabase = createClient() const { data, error } = await supabase .from('customers') .select('*') .order('created_at', { ascending: false }) if (error) { console.error('Error fetching customers:', error) return { success: false, error: error.message } } return { success: true, data: data as Customer[] } } // Get customer by ID export async function getCustomerById(id: number) { const supabase = createClient() const { data, error } = await supabase .from('customers') .select('*') .eq('id', id) .single() if (error) { return { success: false, error: error.message } } return { success: true, data: data as Customer } } // Add new customer export async function addCustomer(customer: CustomerInsert) { const supabase = createClient() const { data, error } = await supabase .from('customers') .insert(customer) .select() .single() if (error) { return { success: false, error: error.message } } revalidatePath('/dashboard/customers') return { success: true, data: data as Customer } } // Update existing customer export async function updateCustomer(id: number, customer: CustomerUpdate) { const supabase = createClient() const { data, error } = await supabase .from('customers') .update({ ...customer, updated_at: new Date().toISOString() }) .eq('id', id) .select() .single() if (error) { return { success: false, error: error.message } } revalidatePath('/dashboard/customers') return { success: true, data: data as Customer } } // Delete customer export async function deleteCustomer(id: number) { const supabase = createClient() const { error } = await supabase .from('customers') .delete() .eq('id', id) if (error) { return { success: false, error: error.message } } revalidatePath('/dashboard/customers') return { success: true } }