import { createPostgresJsClient } from '@platform-modules/db/postgres-js'
import { drizzle } from 'drizzle-orm/postgres-js'
import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js'
import postgres from 'postgres'
import type { Env } from '@zync/types'
import * as schema from './schema'

const POSTGRES_OPTIONS = {
  max: 5,
  idle_timeout: 20,
} as const

export function createLegacyDbForParity(env: Env): PostgresJsDatabase<typeof schema> {
  const sql = postgres(env.DB.connectionString, POSTGRES_OPTIONS)
  return drizzle(sql, { schema })
}

export function createPlatformDb(env: Env): PostgresJsDatabase<typeof schema> {
  return createPostgresJsClient({
    connectionString: env.DB.connectionString,
    schema,
  })
}
