import { PrismaClient, NewsCategory } from "@prisma/client";
import bcrypt from "bcryptjs";

const prisma = new PrismaClient();

async function main() {
  const hash = await bcrypt.hash("admin123", 10);
  await prisma.adminUser.upsert({
    where: { email: "admin@fluminensedefeira.com.br" },
    update: {},
    create: {
      email: "admin@fluminensedefeira.com.br",
      passwordHash: hash,
    },
  });

  const newsSamples = [
    {
      title:
        "Fluminense de Feira investe em qualificação e envia coordenador da base para intercâmbio na Espanha",
      slug: "intercambio-espanha-base",
      excerpt:
        "Edu Silva, coordenador da base e técnico do Sub-20, participa de intercâmbio técnico na Espanha.",
      content:
        "O Fluminense de Feira reforça o compromisso com a formação ao investir na qualificação internacional. Edu Silva, coordenador da categoria de base e técnico do Sub-20, viajou para a Espanha em programa de intercâmbio técnico, alinhando metodologias europeias ao trabalho do Touro do Sertão.",
      category: "BASE" as NewsCategory,
      published: true,
    },
    {
      title: "Atletas se apresentam no CT do Touro do Sertão para início da temporada 2026",
      slug: "apresentacao-temporada-2026",
      excerpt: "Elenco inicia preparação para a nova temporada.",
      content:
        "O elenco profissional do Fluminense de Feira se apresentou no Centro de Treinamentos para dar início aos trabalhos da temporada 2026. Foco, união e a torcida feirense como combustível.",
      category: "CLUBE" as NewsCategory,
      published: true,
    },
    {
      title:
        "SAF do Fluminense de Feira celebra acordo com TRT-5 e garante pagamento de processos trabalhistas",
      slug: "saf-acordo-trt5",
      excerpt:
        "Acordo histórico fortalece a governança e a tranquilidade institucional do clube.",
      content:
        "A SAF do Fluminense de Feira consolidou acordo com o TRT-5, garantindo o pagamento de mais de 50 processos trabalhistas — passo decisivo para a estabilidade e o crescimento sustentável do clube.",
      category: "MERCADO" as NewsCategory,
      published: true,
    },
  ];

  for (const n of newsSamples) {
    await prisma.news.upsert({
      where: { slug: n.slug },
      update: {},
      create: n,
    });
  }

  if ((await prisma.sponsor.count()) === 0) {
    await prisma.sponsor.createMany({
      data: [
        {
          name: "Patrocinador Premium (Hero)",
          slot: "HERO",
          active: true,
          sortOrder: 0,
          url: "#",
        },
        {
          name: "Parceiro Lateral",
          slot: "SIDEBAR",
          active: true,
          sortOrder: 0,
        },
        {
          name: "Parceiro Grade A",
          slot: "GRID",
          active: true,
          sortOrder: 1,
        },
        {
          name: "Parceiro Grade B",
          slot: "GRID",
          active: true,
          sortOrder: 2,
        },
        {
          name: "Marca Nativa",
          slot: "NATIVE",
          active: true,
          sortOrder: 0,
          url: "#",
        },
      ],
    });
  }

  if ((await prisma.match.count()) === 0) {
    const nextMatch = new Date();
    nextMatch.setDate(nextMatch.getDate() + 7);
    await prisma.match.create({
      data: {
        opponent: "Rival Regional",
        competition: "Campeonato Baiano",
        venue: "Estádio Joia da Princesa",
        matchAt: nextMatch,
        isHome: true,
      },
    });
  }

  for (const st of [
    {
      key: "clube_intro",
      value:
        "O Fluminense de Feira Futebol Clube é uma das instituições mais tradicionais do futebol baiano, com raízes profundas em Feira de Santana.",
    },
    {
      key: "historia_resumo",
      value:
        "Ao longo das décadas, o Touro do Sertão construiu uma trajetória de paixão, resistência e orgulho para o torcedor feirense.",
    },
  ]) {
    await prisma.siteText.upsert({
      where: { key: st.key },
      create: st,
      update: {},
    });
  }

  if ((await prisma.socioPlan.count()) === 0) {
    await prisma.socioPlan.createMany({
      data: [
        {
          name: "Bronze",
          description: "Acesso a conteúdos exclusivos.",
          valueCents: 0,
          benefits: ["Nome listado no site", "Acesso a notícias exclusivas"] as any,
          active: true,
          sortOrder: 0,
        },
        {
          name: "Prata",
          description: "Todos os benefícios do Bronze + descontos.",
          valueCents: 0,
          benefits: [
            "Todos benefícios do Bronze",
            "Desconto em ingressos",
          ] as any,
          active: true,
          sortOrder: 1,
        },
        {
          name: "Ouro",
          description: "Experiências com o clube e produtos exclusivos.",
          valueCents: 0,
          benefits: [
            "Todos benefícios anteriores",
            "Experiências com o clube",
            "Produtos exclusivos",
          ] as any,
          active: true,
          sortOrder: 2,
        },
      ],
    });
  }

  console.log("Seed OK. Admin: admin@fluminensedefeira.com.br / admin123");
}

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