import type { ProviderMeta, TranscriptionProvider } from "@/server/ai/providers"; /** Deterministic transcription provider for tests/demos: fixed text or configured error. */ export class FakeTranscriptionProvider implements TranscriptionProvider { readonly name = "fake"; readonly model = "fake-whisper-1"; readonly calls: Array<{ mimeType: string; size: number; language: string }> = []; constructor(private readonly opts: { text?: string; fail?: Error } = {}) {} async transcribe(input: { bytes: Buffer; mimeType: string; language: "de" | "en" }): Promise<{ text: string; meta: ProviderMeta }> { this.calls.push({ mimeType: input.mimeType, size: input.bytes.byteLength, language: input.language }); if (this.opts.fail) throw this.opts.fail; return { text: this.opts.text ?? "Heizkörper im Bad getauscht.", meta: { provider: this.name, model: this.model } }; } }