import { createSupabaseServiceRoleClient } from "@/lib/supabase/service-role"; import type { AppUserSettings } from "@/types/app/user"; export async function getUserSettings(userId: string) { const supabase = createSupabaseServiceRoleClient(); const { data, error } = await supabase .from("wg_user_settings") .select("user_id,preferences,download_preferences,updated_at") .eq("user_id", userId) .maybeSingle(); if (error) { throw error; } if (data) { return data; } const { data: created, error: createError } = await supabase .from("wg_user_settings") .insert({ user_id: userId, preferences: {}, download_preferences: {}, }) .select("user_id,preferences,download_preferences,updated_at") .single(); if (createError) { throw createError; } return created; } export async function updateUserSettings({ downloadPreferences, preferences, userId, }: { downloadPreferences?: Record; preferences?: Record; userId: string; }) { const current = await getUserSettings(userId); const supabase = createSupabaseServiceRoleClient(); const { data, error } = await supabase .from("wg_user_settings") .update({ preferences: preferences ?? current.preferences, download_preferences: downloadPreferences ?? current.download_preferences, }) .eq("user_id", userId) .select("user_id,preferences,download_preferences,updated_at") .single(); if (error) { throw error; } return data; }