37 lines
1.2 KiB
TypeScript

import { serverSupabaseServiceRole } from "../../utils/useSupabase";
import { deleteUserUrgeLogs } from "../../db/urge";
import { deleteUserSosSessions } from "../../db/sosSession";
import { deleteUserStreaks } from "../../db/streak";
import { deleteUserPosts } from "../../db/community";
import { deleteAllUserCustomDomains } from "../../db/domains";
import {
deleteUserTrustedContacts,
deleteUserCoachSessions,
} from "../../db/user";
import { deleteProfile } from "../../db/profile";
export default defineEventHandler(async (event) => {
const user = await requireUser(event);
const supabase = serverSupabaseServiceRole(event);
const userId = user.id;
// Delete all user data (DSGVO Art. 17)
await Promise.all([
deleteUserUrgeLogs(userId),
deleteUserSosSessions(userId),
deleteUserStreaks(userId),
deleteUserPosts(userId),
deleteAllUserCustomDomains(userId),
deleteUserTrustedContacts(userId),
deleteUserCoachSessions(userId),
]);
// Profil zuletzt löschen (FK-Abhängigkeiten sind bereits entfernt)
await deleteProfile(userId).catch(() => {});
// Auth-User löschen (bleibt Supabase)
await supabase.auth.admin.deleteUser(userId);
return { success: true };
});