// Crea los usuarios demo (dueno y repartidor) usando la API admin de Supabase.
// Correr DESPUES de `supabase db reset`:  node scripts/seed_usuarios.mjs
import { createClient } from '@supabase/supabase-js';

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

const REST = '11111111-1111-1111-1111-111111111111';
const admin = createClient(URL, SERVICE, {
  auth: { autoRefreshToken: false, persistSession: false },
});

async function ensureUser(email, password, meta) {
  const { data, error } = await admin.auth.admin.createUser({
    email,
    password,
    email_confirm: true,
    user_metadata: meta,
  });
  if (error && !/already|registered|exists/i.test(error.message)) throw error;
  if (data?.user) return data.user;
  const { data: list, error: e2 } = await admin.auth.admin.listUsers();
  if (e2) throw e2;
  const u = list.users.find((x) => x.email === email);
  if (!u) throw new Error('No se pudo crear ni encontrar ' + email);
  return u;
}

const dueno = await ensureUser('dueno@laesquina.com', 'Dueno1234', { nombre: 'Dueno La Esquina' });
let r = await admin
  .from('perfiles')
  .update({ rol: 'dueno', restaurante_id: REST, nombre: 'Dueno La Esquina', telefono: '0414-1234567' })
  .eq('id', dueno.id);
if (r.error) throw r.error;

const rep = await ensureUser('repartidor@laesquina.com', 'Moto1234', { nombre: 'Repartidor La Esquina' });
r = await admin
  .from('perfiles')
  .update({ rol: 'repartidor', restaurante_id: REST, nombre: 'Repartidor La Esquina', telefono: '0424-7654321' })
  .eq('id', rep.id);
if (r.error) throw r.error;

r = await admin
  .from('repartidores')
  .upsert(
    { perfil_id: rep.id, restaurante_id: REST, vehiculo: 'Moto', estado: 'disponible' },
    { onConflict: 'perfil_id,restaurante_id' },
  );
if (r.error) throw r.error;

console.log('OK usuarios demo:');
console.log('  Dueno       -> dueno@laesquina.com / Dueno1234');
console.log('  Repartidor  -> repartidor@laesquina.com / Moto1234');
