import { eq, sql } from "drizzle-orm"
import { db } from "@/lib/db/client"
import { taskInstances } from "@/lib/db/schema"

await db
  .update(taskInstances)
  .set({ status: "todo", startedAt: null })
  .where(eq(taskInstances.id, "5ea2cdd2-92c3-4149-898a-e17cecdb58e2"))

const s = await db
  .select({ s: taskInstances.status, n: sql<number>`count(*)::int` })
  .from(taskInstances).groupBy(taskInstances.status).orderBy(taskInstances.status)
console.log("statuts :", s)

// Aucune ligne ne doit porter un horodatage incoherent avec son statut.
const [odd] = await db
  .select({ n: sql<number>`count(*)::int` })
  .from(taskInstances)
  .where(sql`(${taskInstances.status} = 'todo' and ${taskInstances.startedAt} is not null)
          or (${taskInstances.status} = 'todo' and ${taskInstances.finishedAt} is not null)
          or (${taskInstances.status} <> 'checked' and ${taskInstances.checkedAt} is not null)`)
console.log("lignes incoherentes :", odd?.n)
process.exit(0)
