import { sql } from 'drizzle-orm'
import { getDialect } from '../dialect'

/**
 * 当前时间表达式：SQLite datetime('now') / PG now() / MySQL NOW()
 * 用于 UPDATE 语句显式刷新 updated_at。
 */
export function nowExpr() {
  return sql.raw(
    getDialect() === 'sqlite' ? `datetime('now')` : getDialect() === 'pg' ? 'now()' : 'NOW()',
  )
}

/** 添加分钟数到当前时间，用于 expires_at。SQLite 与 MySQL 各自表达式。 */
export function addMinutesExpr(minutes: number) {
  return sql.raw(
    getDialect() === 'sqlite'
      ? `datetime('now', '+${minutes} minutes')`
      : `DATE_ADD(NOW(), INTERVAL ${minutes} MINUTE)`,
  )
}
