import env from '#start/env'
import type { OcrProvider } from '#services/ocr/ocr_provider'
import { MockOcrProvider } from '#services/ocr/mock_ocr_provider'
import { MistralOcrProvider } from '#services/ocr/mistral_ocr_provider'

/**
 * Résout l'implémentation OCR à utiliser selon OCR_PROVIDER.
 *
 *  - `mock` (default) : MockOcrProvider, données plausibles depuis filename.
 *    Compatible avec /invoices/upload en mode JSON `{filenames}`.
 *  - `mistral` : MistralOcrProvider. Nécessite un PDF stocké (multipart
 *    upload) + MISTRAL_API_KEY. Pas compatible avec le mode JSON.
 */
export function getOcrProvider(): OcrProvider {
  const provider = env.get('OCR_PROVIDER', 'mock')
  if (provider === 'mistral') {
    return new MistralOcrProvider()
  }
  return new MockOcrProvider()
}
