import { createDb } from '@znet/catalog-db'
import { createLogger } from '@znet/shared'
import { magentoFromEnv } from '@znet/magento'
import type { SyncEnv } from './config.js'
import type { SyncContext } from './jobs.js'

export function createSyncContext(env: SyncEnv): { ctx: SyncContext; close: () => Promise<void> } {
  const log = createLogger('sync', env.LOG_LEVEL)
  const { db, close } = createDb(env.DATABASE_URL, { max: 5, applicationName: 'mcp-znet-sync' })
  const magento = magentoFromEnv(env, log)
  return { ctx: { db, magento, log, storeCodes: env.MAGENTO_STORE_CODES, stockId: env.MAGENTO_STOCK_ID }, close }
}
