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').eq('restaurante_id', REST).limit(1);
const tel='0424-9998877';
const { data: cr, error: ce } = await anon.rpc('crear_pedido', { p_restaurante_id: REST, p_cliente_nombre:'Juan Cierre', p_cliente_telefono:tel, p_tipo_entrega:'pickup', p_metodo_pago:'efectivo', p_items:[{producto_id:prods[0].id, cantidad:1}], p_cedula:'V-12345678' });
if(ce){console.log('crear err', ce.message); process.exit(1);}
const pid = cr[0].pedido_id;

const { data: b1 } = await anon.rpc('buscar_pedidos', { p_telefono: tel });
check(b1.some(p=>p.pedido_id===pid), 'Antes de cerrar: el pedido se recupera por telefono');

const dueno = createClient(URL, ANON, {auth:{persistSession:false}});
const { error: le } = await dueno.auth.signInWithPassword({ email:'dueno@laesquina.com', password:'Dueno1234' });
if(le){console.log('login err', le.message); process.exit(1);}

const { error: cee } = await dueno.rpc('cerrar_negocio');
check(!cee, 'cerrar_negocio sin error'+(cee?': '+cee.message:''));

const { data: rest } = await anon.from('restaurantes').select('abierto').eq('id', REST).single();
check(rest && rest.abierto===false, 'restaurante quedo cerrado (abierto=false)');

const { data: b2 } = await anon.rpc('buscar_pedidos', { p_telefono: tel });
check(!b2.some(p=>p.pedido_id===pid), 'Datos ocultos: ya no se recupera por telefono');

const { data: ped } = await dueno.from('pedidos').select('cliente_nombre,cliente_telefono,cliente_cedula,total_usd').eq('id', pid).single();
check(!!ped, 'El pedido SE CONSERVA en el historial (no se borro)');
check(ped && ped.cliente_nombre==='Cliente' && ped.cliente_telefono==='' && ped.cliente_cedula===null, 'Los datos personales quedaron ocultos (nombre/telefono/cedula)');
check(ped && Number(ped.total_usd)>0, 'El total del pedido se conserva para el reporte');

await dueno.from('restaurantes').update({abierto:true}).eq('id', REST);
console.log('\n'+(fallos===0?'CIERRE OK':fallos+' FALLO(S)')); process.exit(fallos===0?0:1);
