import type Anthropic from '@anthropic-ai/sdk';
import type OpenAI from 'openai';
import type { ParteMensaje } from 'src/imagenes-ia/pipeline/tipos';

/** Mapeo puro de partes multimodales al formato de cada SDK (testeable sin red). */
export function partesAAnthropic(partes: ParteMensaje[]): Anthropic.ContentBlockParam[] {
  return partes.map((p) =>
    p.type === 'text'
      ? { type: 'text', text: p.text }
      : { type: 'image', source: { type: 'base64', media_type: 'image/jpeg', data: p.jpegBase64 } },
  );
}

export function partesAOpenAI(partes: ParteMensaje[]): OpenAI.ChatCompletionContentPart[] {
  return partes.map((p) =>
    p.type === 'text' ? { type: 'text', text: p.text } : { type: 'image_url', image_url: { url: `data:image/jpeg;base64,${p.jpegBase64}` } },
  );
}
