import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();

async function main() {
  console.log("🌱 Restaurando cursos y colegios...");

  // Recobrar o crear colegios base
  const colegios = [
    { nombre: "Sede Centro Nirgua", ubicacion: "Centro, Nirgua, Edo. Yaracuy", email: "centro@cursosnirgua.com", whatsapp: "584141234567", activo: true },
    { nombre: "Sede Norte Nirgua",  ubicacion: "Norte, Nirgua, Edo. Yaracuy", email: "norte@cursosnirgua.com",  whatsapp: "584129876543", activo: true },
  ];

  const colegioObjs: Record<string, string> = {};
  for (const c of colegios) {
    let colegio = await prisma.colegio.findFirst({ where: { nombre: c.nombre } });
    if (!colegio) {
      colegio = await prisma.colegio.create({ data: c });
      console.log(`  🏫 Creado: ${c.nombre}`);
    } else {
      console.log(`  🏫 Ya existe: ${c.nombre}`);
    }
    colegioObjs[c.nombre] = colegio.id;
  }

  // Leer categorías existentes
  const categoriasDB = await prisma.categoriaMaster.findMany();
  const catMap: Record<string, string> = {};
  for (const cat of categoriasDB) {
    catMap[cat.nombre] = cat.nombre; // el campo categoria en Curso es String
  }

  const cursos = [
    // Sede Centro
    { titulo: "Barbería Profesional Nivel I",     categoria: "Barbería y Peluquería",      colegioNombre: "Sede Centro Nirgua", precio: 35, matriculaMax: 20 },
    { titulo: "Barbería Profesional Nivel II",    categoria: "Barbería y Peluquería",      colegioNombre: "Sede Centro Nirgua", precio: 45, matriculaMax: 15 },
    { titulo: "Repostería Artística",             categoria: "Repostería y Pastelería",    colegioNombre: "Sede Centro Nirgua", precio: 30, matriculaMax: 18 },
    { titulo: "Diseño de Tortas y Fondant",       categoria: "Repostería y Pastelería",    colegioNombre: "Sede Centro Nirgua", precio: 40, matriculaMax: 12 },
    { titulo: "Manicure y Pedicure Profesional",  categoria: "Belleza y Estética",         colegioNombre: "Sede Centro Nirgua", precio: 25, matriculaMax: 15 },
    { titulo: "Extensiones y Uñas Acrílicas",    categoria: "Belleza y Estética",         colegioNombre: "Sede Centro Nirgua", precio: 50, matriculaMax: 10 },
    { titulo: "Excel e Informática Básica",       categoria: "Informática y Tecnología",   colegioNombre: "Sede Centro Nirgua", precio: 20, matriculaMax: 25 },

    // Sede Norte
    { titulo: "Cocina Internacional",             categoria: "Cocina y Gastronomía",       colegioNombre: "Sede Norte Nirgua",  precio: 35, matriculaMax: 20 },
    { titulo: "Corte y Costura para Principiantes", categoria: "Costura y Modistería",     colegioNombre: "Sede Norte Nirgua",  precio: 28, matriculaMax: 18 },
    { titulo: "Inglés Conversacional A1",         categoria: "Idiomas",                    colegioNombre: "Sede Norte Nirgua",  precio: 30, matriculaMax: 20 },
    { titulo: "Diseño Gráfico con Canva",         categoria: "Diseño Gráfico",             colegioNombre: "Sede Norte Nirgua",  precio: 25, matriculaMax: 20 },
    { titulo: "Electricidad Residencial",         categoria: "Electricidad Industrial",    colegioNombre: "Sede Norte Nirgua",  precio: 40, matriculaMax: 15 },
    { titulo: "Mecánica Básica de Motos",         categoria: "Mecánica Automotriz",        colegioNombre: "Sede Norte Nirgua",  precio: 45, matriculaMax: 12 },
    { titulo: "Tejido y Bordado Artesanal",       categoria: "Construcción y Manualidades",colegioNombre: "Sede Norte Nirgua",  precio: 20, matriculaMax: 20 },
  ];

  for (const curso of cursos) {
    const colegioId = colegioObjs[curso.colegioNombre];
    if (!colegioId) { console.log(`  ⚠️  Colegio no encontrado: ${curso.colegioNombre}`); continue; }

    await prisma.curso.create({
      data: {
        colegioId,
        titulo:      curso.titulo,
        categoria:   curso.categoria,
        precio:      curso.precio,
        matriculaMax: curso.matriculaMax,
        fechaInicio: new Date("2025-04-01"),
      }
    });
    console.log(`  📚 ${curso.titulo} (${curso.categoria})`);
  }

  console.log(`\n✅ Restauración completa: ${cursos.length} cursos en ${colegios.length} sedes.`);
}

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