// Prueba la Edge Function importar-menu-ia como lo haria el dueno autenticado.
// Uso: node scripts/test_importar_ef.mjs <ruta_imagen>
import { createClient } from '@supabase/supabase-js';
import fs from 'fs';

const URL = process.env.VITE_SUPABASE_URL || 'http://127.0.0.1:54321';
const ANON =
  process.env.VITE_SUPABASE_ANON_KEY || process.env.SUPABASE_ANON_KEY || '';

const anon = createClient(URL, ANON, { auth: { persistSession: false } });
const { data: s, error: e } = await anon.auth.signInWithPassword({
  email: 'dueno@laesquina.com',
  password: 'Dueno1234',
});
if (e) throw e;
const token = s.session.access_token;

const img = fs.readFileSync(process.argv[2]).toString('base64');

// Espera a que el servidor de funciones responda (arranque en frio).
let intento = 0;
for (;;) {
  try {
    const r = await fetch(`${URL}/functions/v1/importar-menu-ia`, {
      method: 'POST',
      headers: { Authorization: `Bearer ${token}`, apikey: ANON, 'Content-Type': 'application/json' },
      body: JSON.stringify({ imagen_base64: img, mime_type: 'image/png' }),
    });
    const j = await r.json();
    console.log('HTTP', r.status);
    console.log(JSON.stringify(j, null, 2).slice(0, 1600));
    process.exit(r.ok ? 0 : 1);
  } catch (err) {
    if (++intento > 20) {
      console.log('No respondio el servidor de funciones:', String(err));
      process.exit(1);
    }
    await new Promise((res) => setTimeout(res, 2000));
  }
}
