/* eslint-disable no-console */
/**
 * P0 集成验证脚本：用新 database 客户端读取现有 forge.db，确认 ORM 层工作正常。
 * 运行：SQLITE_DB_PATH=~/.forge/forge.db npx tsx scripts/verify-p0.ts
 */
import { getDb } from '../src/lib/database/client'
import { sessions, messages, imChannels, user, cronTasks } from '../src/lib/database/schema/sqlite'
import { count, eq } from 'drizzle-orm'

const db = getDb()

console.log('[verify] drizzle 客户端已建立，开始查询...\n')

// 1. 会话计数
const sessionCount = db.select({ c: count() }).from(sessions).get()
console.log(`[verify] sessions count: ${sessionCount?.c}`)

// 2. 消息计数
const msgCount = db.select({ c: count() }).from(messages).get()
console.log(`[verify] messages count: ${msgCount?.c}`)

// 3. 最近 3 个会话
const recent = db.select({ id: sessions.id, title: sessions.title, model: sessions.model })
  .from(sessions)
  .limit(3)
  .all()
console.log('[verify] recent 3 sessions:')
for (const s of recent) console.log(`   - ${s.id} | ${s.title} | ${s.model}`)

// 4. IM 频道
const channels = db.select({ id: imChannels.id, type: imChannels.type, name: imChannels.name })
  .from(imChannels)
  .limit(5)
  .all()
console.log('[verify] IM channels:')
for (const c of channels) console.log(`   - ${c.id} | ${c.type} | ${c.name}`)

// 5. 用户
const users = db.select({ id: user.id, email: user.email, role: user.role }).from(user).all()
console.log('[verify] users:')
for (const u of users) console.log(`   - ${u.id} | ${u.email} | ${u.role}`)

// 6. cron 任务
const tasks = db.select({ id: cronTasks.id, name: cronTasks.name, enabled: cronTasks.enabled })
  .from(cronTasks)
  .all()
console.log('[verify] cron tasks:')
for (const t of tasks) console.log(`   - ${t.id} | ${t.name} | enabled=${t.enabled}`)

console.log('\n[verify] ✅ drizzle ORM 层读取现有库成功，schema 类型推断正常')
