#!/bin/bash
# Setup script for Chicharro user
# Run this from: /home/ines/CarnTrack
#
# This script generates a proper scrypt password hash and updates the database

cd /home/ines/CarnTrack

echo "🔐 Generating scrypt password hash for Chicharro..."
echo ""

# Run Node.js to generate hash and update database
node << 'NODEJS_SCRIPT'
const crypto = require("crypto");
const pg = require("pg");

const pool = new pg.Pool({
  user: process.env.DB_USER || "postgres",
  password: process.env.DB_PASSWORD || "postgres",
  host: process.env.DB_HOST || "localhost",
  port: process.env.DB_PORT || 5432,
  database: process.env.DB_NAME || "carntrack",
});

(async () => {
  try {
    // Generate scrypt hash with Better Auth parameters
    const salt = crypto.randomBytes(16).toString("hex");
    const derivedKey = crypto.scryptSync("123456", salt, 64, {
      N: 16384,
      r: 16,
      p: 1,
      maxmem: 67108864,
    });
    const passwordHash = `${salt}:${derivedKey.toString("hex")}`;

    console.log("📝 Updating Chicharro password in database...");
    
    const result = await pool.query(
      `UPDATE account SET password = $1 WHERE "userId" = $2 RETURNING id`,
      [passwordHash, "94d82eab-2918-4789-beb4-e60020758df8"]
    );

    if (result.rows.length > 0) {
      console.log("✅ Password updated successfully!");
      console.log("");
      console.log("╔════════════════════════════════════════════════════════════════╗");
      console.log("║             🎉 Chicharro User Ready!                           ║");
      console.log("╚════════════════════════════════════════════════════════════════╝");
      console.log("");
      console.log("📧 Email:         chicharro@carntrack.com");
      console.log("🔑 Contraseña:     123456");
      console.log("👤 Rol:           chicharro (Super viewer)");
      console.log("");
      console.log("✅ Funcionalidades:");
      console.log("   • Ver todos los contenedores");
      console.log("   • Ver nombres de Admin y Trader");
      console.log("   • Ver el calendario");
      console.log("   • Descargar ZIP de documentos");
      console.log("   • Exportar Excel");
      console.log("");
      console.log("❌ Restricciones:");
      console.log("   • No puede crear contenedores");
      console.log("   • No puede editar contenedores");
      console.log("   • No puede eliminar contenedores");
      console.log("   • No puede subir documentos");
      console.log("   • No puede eliminar documentos");
      console.log("   • NO tiene acceso a 'Permisos'");
      console.log("");
    } else {
      console.log("❌ Error: Usuario no encontrado");
      process.exit(1);
    }

    await pool.end();
  } catch (err) {
    console.error("❌ Error:", err.message);
    process.exit(1);
  }
})();
NODEJS_SCRIPT
