/**
 * MailFlow - Database Cleanup Script
 * 
 * ⚠️  WICHTIG: Liest Credentials aus Umgebungsvariablen (.env)
 * Keine hardcoded API Keys mehr!
 */

import 'dotenv/config';
import { Client, Databases } from "node-appwrite";

// Prüfe erforderliche Umgebungsvariablen
const requiredEnv = [
  "APPWRITE_ENDPOINT",
  "APPWRITE_PROJECT_ID",
  "APPWRITE_API_KEY",
  "APPWRITE_DATABASE_ID"
];

for (const key of requiredEnv) {
  if (!process.env[key]) {
    console.error(`❌ Fehlende Umgebungsvariable: ${key}`);
    console.error(`\nBitte setze diese Variable in server/.env`);
    process.exit(1);
  }
}

const client = new Client()
  .setEndpoint(process.env.APPWRITE_ENDPOINT)
  .setProject(process.env.APPWRITE_PROJECT_ID)
  .setKey(process.env.APPWRITE_API_KEY);

const db = new Databases(client);
const databaseId = process.env.APPWRITE_DATABASE_ID;

console.log(`🗑️  Lösche Datenbank: ${databaseId}`);
console.log(`⚠️  WARNUNG: Diese Aktion kann nicht rückgängig gemacht werden!\n`);

try {
  await db.delete(databaseId);
  console.log(`✅ Datenbank erfolgreich gelöscht: ${databaseId}`);
} catch (e) {
  if (e.code === 404) {
    console.log(`ℹ️  Datenbank existiert nicht: ${databaseId}`);
  } else {
    console.error(`❌ Fehler beim Löschen der Datenbank:`, e.message);
    process.exit(1);
  }
}
