import { prisma } from "../src/prisma.js";
import { hashPassword } from "../src/lib/password.js";

async function main() {
  const [, , username, name, password] = process.argv;

  if (!username || !name || !password) {
    console.error(
      'Uso: pnpm exec tsx scripts/create_user.ts <username> "<nombre>" "<password>"'
    );
    process.exit(1);
  }

  if (password.length < 8) {
    console.error("La contraseña debe tener al menos 8 caracteres.");
    process.exit(1);
  }

  const existing = await prisma.user.findUnique({ where: { username } });
  if (existing) {
    console.error(`Ya existe un usuario con username "${username}".`);
    process.exit(1);
  }

  const passwordHash = await hashPassword(password);
  const user = await prisma.user.create({
    data: { username, name, passwordHash },
  });

  console.log(`Usuario creado: id=${user.id} username=${user.username}`);
}

main()
  .catch((err) => {
    console.error(err);
    process.exit(1);
  })
  .finally(() => prisma.$disconnect());
