/** Jetable. Il ne doit rien rester du compte de test. */
import { like, or, eq, sql } from "drizzle-orm"

import { account, session, user } from "@/lib/db/auth-schema"
import { db } from "@/lib/db/client"

const ghosts = await db
  .select({ id: user.id, username: user.username, email: user.email })
  .from(user)
  .where(or(like(user.username, "intrus%"), like(user.email, "intrus%")))
console.log("comptes intrus restants :", ghosts)

for (const g of ghosts) {
  await db.delete(session).where(eq(session.userId, g.id))
  await db.delete(account).where(eq(account.userId, g.id))
  await db.delete(user).where(eq(user.id, g.id))
}

const counts = await db
  .select({ n: sql<number>`count(*)::int` })
  .from(user)
console.log("comptes au total :", counts[0]?.n)

const orphanSessions = await db
  .select({ n: sql<number>`count(*)::int` })
  .from(session)
  .where(sql`${session.userId} not in (select id from "user")`)
console.log("sessions orphelines :", orphanSessions[0]?.n)

process.exit(0)
