import Surreal from 'surrealdb';

const db = new Surreal();

async function addInProductionField() {
  try {
    await db.connect(process.env.SURREAL_URL || "wss://gentle-island-06di2pv2c9po3a8euttd1alkek.aws-euw1.surreal.cloud/rpc");
    await db.signin({
      username: process.env.SURREAL_USER || "rootuser",
      password: process.env.SURREAL_PASS || "n1n@S1mone",
    });
    await db.use({
      namespace: process.env.SURREAL_NAMESPACE || "neoad",
      database: process.env.SURREAL_DATABASE || "neodb",
    });

    console.log("✅ Connecté à SurrealDB Cloud\n");
    console.log("📝 Ajout du champ in_production à la table template...\n");

    // Ajouter le champ in_production
    await db.query(`
      DEFINE FIELD OVERWRITE in_production ON template 
      TYPE bool 
      DEFAULT false;
    `);

    console.log("✅ Champ in_production ajouté avec succès!");

    // Vérifier les templates existants
    const [templates] = await db.query<[any[]]>(`
      SELECT id, name, in_production FROM template ORDER BY name ASC
    `);

    console.log("\n📋 État des templates:");
    console.log("─".repeat(70));
    for (const template of templates || []) {
      const status = template.in_production ? "✓ En production" : "○ En développement";
      console.log(`${template.name.padEnd(40)} ${status}`);
    }
    console.log("─".repeat(70));
    console.log(`\nTotal: ${templates?.length || 0} template(s)`);

    await db.close();
  } catch (error) {
    console.error('❌ Erreur:', error);
    process.exit(1);
  }
}

addInProductionField();
