import { getDb } from '../client'
import { sessions, messages, taskExecutions, cronTasks, imChannels, mcpServers, hooks, agentSkills, agents, skills } from '../schema'

/**
 * Data Clear Repository。
 * 封装"清空用户数据"操作——跨 10 表的 atomic bulk DELETE。
 * 保留 schema（表结构）和配置表（settings/api_providers/workspaces/user）。
 *
 * 用 db.transaction 包裹保证原子性——要么全清，要么全留。
 */
export const dataClearRepo = {
  /** 清空所有业务数据表（保留 schema、settings、workspaces、api_providers、user） */
  executeUserDataClear() {
    getDb().transaction((tx) => {
      tx.delete(messages).run()
      tx.delete(sessions).run()
      tx.delete(taskExecutions).run()
      tx.delete(cronTasks).run()
      tx.delete(imChannels).run()
      tx.delete(mcpServers).run()
      tx.delete(hooks).run()
      tx.delete(agentSkills).run()
      tx.delete(agents).run()
      tx.delete(skills).run()
    })
  },
}
