const { pool } = require("./config/database");
const fs = require("fs");
const path = require("path");

async function cleanOrphanedFiles() {
  try {
    const result = await pool.query("SELECT id, filename FROM uploads");
    console.log("Files in database:", result.rows.length);

    const uploadDir = path.join(__dirname, "..", "website", "uploads");

    for (const file of result.rows) {
      const filePath = path.join(uploadDir, file.filename);
      const exists = fs.existsSync(filePath);
      console.log(
        `ID ${file.id}: ${file.filename} - ${exists ? "EXISTS" : "MISSING"}`
      );

      if (!exists) {
        console.log(`  Deleting orphaned record ID ${file.id}`);
        await pool.query("DELETE FROM uploads WHERE id = $1", [file.id]);
      }
    }

    console.log("\nCleanup complete!");
    await pool.end();
  } catch (err) {
    console.error("Error:", err);
    await pool.end();
    process.exit(1);
  }
}

cleanOrphanedFiles();
