import { createClient } from '@supabase/supabase-js';
const URL='http://127.0.0.1:54321';
const ANON=process.env.SUPABASE_ANON_KEY || process.env.VITE_SUPABASE_ANON_KEY || '';
const REST='11111111-1111-1111-1111-111111111111';
const anon = createClient(URL, ANON, {auth:{persistSession:false}});
let fallos=0; const check=(c,m)=>{console.log((c?'  OK  ':'  XX  ')+m); if(!c)fallos++;};

const { data: prods } = await anon.from('productos').select('id,nombre').eq('restaurante_id', REST).limit(1);
const pid_prod = prods[0].id;
const nota1='como me gusta: sin vegetales, sin mostaza';
const nota2='con todo';
// MISMO producto, dos lineas, personalizaciones distintas
const { data: cr, error: ce } = await anon.rpc('crear_pedido', {
  p_restaurante_id: REST, p_cliente_nombre:'Gilberto', p_cliente_telefono:'0414-1112233',
  p_tipo_entrega:'pickup', p_metodo_pago:'efectivo',
  p_items:[
    { producto_id: pid_prod, cantidad: 1, nota: nota1 },
    { producto_id: pid_prod, cantidad: 1, nota: nota2 },
  ] });
if(ce){console.log('crear err', ce.message); process.exit(1);}
const pid = cr[0].pedido_id;

const { data: tk } = await anon.rpc('pedido_ticket', { p_pedido_id: pid });
const items = tk?.[0]?.items ?? [];
check(items.length===2, 'el pedido tiene 2 lineas del MISMO producto ('+items.length+')');
check(items.some(i=>i.nota===nota1) && items.some(i=>i.nota===nota2), 'cada linea conserva su personalizacion distinta');

const dueno = createClient(URL, ANON, {auth:{persistSession:false}});
await dueno.auth.signInWithPassword({email:'dueno@laesquina.com', password:'Dueno1234'});
const { data: pitems } = await dueno.from('pedido_items').select('nota').eq('pedido_id', pid);
check(pitems?.filter(i=>i.nota).length===2 && pitems.some(i=>i.nota===nota1) && pitems.some(i=>i.nota===nota2), 'la cocina ve las dos personalizaciones por separado');

console.log('\n'+(fallos===0?'PERSONALIZACION OK':fallos+' FALLO(S)')); process.exit(fallos===0?0:1);
