import { sql } from 'drizzle-orm'
import type { Querier } from '@platform-modules/db'
import { contentSearchMigrationSql } from './search.js'
import { type ContentSchema } from './schema.js'
import { setupTaxonomyDb } from './taxonomy.test-helpers.js'

/** Real-PG fixture: base content_entries + taxonomy DDL + FTS generated column + GIN index. */
export async function setupSearchDb(handle: unknown): Promise<Querier<ContentSchema>> {
  const d = await setupTaxonomyDb(handle)
  await applyContentSearchMigration(d)
  return d
}

export async function applyContentSearchMigration(db: Querier<ContentSchema>): Promise<void> {
  for (const s of contentSearchMigrationSql()
    .split(';')
    .map((x) => x.trim())
    .filter(Boolean)) {
    await db.execute(sql.raw(s))
  }
}
