import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'
import { sql } from 'drizzle-orm'
import { HookAction } from '../../shared/enums'

export const hooks = sqliteTable('hooks', {
  id: text('id').primaryKey(),
  name: text('name').notNull(),
  event: text('event').notNull().default('pre_tool'),
  toolPattern: text('tool_pattern').notNull().default('*'),
  action: text('action', { enum: ['shell', 'block', 'log'] }).notNull().default(HookAction.LOG),
  command: text('command').notNull().default(''),
  enabled: integer('enabled').notNull().default(1),
  createdAt: text('created_at').notNull().default(sql`(datetime('now'))`),
})

export type Hook = typeof hooks.$inferSelect
export type NewHook = typeof hooks.$inferInsert
