// Prisma seed — reference data for Tử vi system
// Seeds: 14 chính tinh + 12 cung
// Run: npm run db:seed

import "dotenv/config";
import { PrismaClient } from "@prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";

const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! });
const prisma = new PrismaClient({ adapter });

const PALACES = [
  {
    id: "menh",
    name: "Mệnh",
    order: 0,
    meaning: "Cung chủ về bản mệnh, tính cách, vận mệnh tổng quát của một đời người.",
  },
  {
    id: "phu-mau",
    name: "Phụ Mẫu",
    order: 1,
    meaning: "Cung về cha mẹ, mối quan hệ với đấng sinh thành.",
  },
  {
    id: "phuc-duc",
    name: "Phúc Đức",
    order: 2,
    meaning: "Cung phước báu, di truyền tinh thần và họ hàng nội ngoại.",
  },
  {
    id: "dien-trach",
    name: "Điền Trạch",
    order: 3,
    meaning: "Cung nhà cửa, đất đai, bất động sản.",
  },
  { id: "quan-loc", name: "Quan Lộc", order: 4, meaning: "Cung sự nghiệp, công danh, chức vị." },
  { id: "no-boc", name: "Nô Bộc", order: 5, meaning: "Cung bạn bè, đồng nghiệp, người giúp việc." },
  {
    id: "thien-di",
    name: "Thiên Di",
    order: 6,
    meaning: "Cung di chuyển, đi xa, cơ hội ngoài xã hội.",
  },
  { id: "tat-ach", name: "Tật Ách", order: 7, meaning: "Cung sức khỏe, bệnh tật, tai nạn." },
  { id: "tai-bach", name: "Tài Bạch", order: 8, meaning: "Cung tiền tài, của cải, dòng tiền." },
  { id: "tu-tuc", name: "Tử Tức", order: 9, meaning: "Cung con cái, hậu duệ." },
  { id: "phu-the", name: "Phu Thê", order: 10, meaning: "Cung vợ chồng, hôn nhân, người bạn đời." },
  { id: "huynh-de", name: "Huynh Đệ", order: 11, meaning: "Cung anh chị em, đồng môn." },
];

const STARS = [
  // 14 Chính tinh
  {
    id: "tu-vi",
    name: "Tử Vi",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Đế tinh, chủ về uy quyền, lãnh đạo, ổn định. Sao chủ tể trong vòng Tử Vi.",
  },
  {
    id: "thien-co",
    name: "Thiên Cơ",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Sao chủ về trí tuệ, mưu lược, suy nghĩ. Khôn ngoan, đa mưu túc trí.",
  },
  {
    id: "thai-duong",
    name: "Thái Dương",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Sao mặt trời, chủ về quyền lực, danh vọng, người cha. Sáng láng, cương trực.",
  },
  {
    id: "vu-khuc",
    name: "Vũ Khúc",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Sao tài chính chính, chủ về tiền bạc, võ tướng, quyết đoán.",
  },
  {
    id: "thien-dong",
    name: "Thiên Đồng",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Sao phúc tinh, chủ về phúc lộc, hưởng thụ, hiền hòa, lương thiện.",
  },
  {
    id: "liem-trinh",
    name: "Liêm Trinh",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Sao đào hoa thứ hai, chủ về sự thanh liêm, công bằng, đôi khi cứng nhắc.",
  },
  {
    id: "thien-phu",
    name: "Thiên Phủ",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Sao chủ tể vòng Thiên Phủ, kho tàng, tài sản, ôn hòa, từ thiện.",
  },
  {
    id: "thai-am",
    name: "Thái Âm",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Sao mặt trăng, chủ về người mẹ, người vợ, sự dịu dàng, tài chính nội bộ.",
  },
  {
    id: "tham-lang",
    name: "Tham Lang",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Đệ nhất đào hoa tinh, chủ về tài năng đa dạng, ham muốn, giao tế.",
  },
  {
    id: "cu-mon",
    name: "Cự Môn",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Ám tinh, chủ về tranh luận, lời nói, miệng tiếng. Cần tu khẩu nghiệp.",
  },
  {
    id: "thien-tuong",
    name: "Thiên Tướng",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Ấn tinh, chủ về quyền lực phụ tá, công bằng, trợ lực.",
  },
  {
    id: "thien-luong",
    name: "Thiên Lương",
    category: "chinh-tinh",
    goodBad: "tot",
    meaning: "Thọ tinh, giải nạn, từ thiện, người trung niên trở lên đắc dụng.",
  },
  {
    id: "that-sat",
    name: "Thất Sát",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Tướng tinh, chủ về quyền uy, sát phạt, độc lập, cô độc.",
  },
  {
    id: "pha-quan",
    name: "Phá Quân",
    category: "chinh-tinh",
    goodBad: "trung-tinh",
    meaning: "Hao tinh, phá cũ lập mới, biến động, sáng tạo. Hợp với sự thay đổi.",
  },
];

async function main() {
  console.log("→ Seeding palaces...");
  for (const p of PALACES) {
    await prisma.palace.upsert({
      where: { id: p.id },
      update: p,
      create: p,
    });
  }

  console.log("→ Seeding stars...");
  for (const s of STARS) {
    await prisma.star.upsert({
      where: { id: s.id },
      update: s,
      create: s,
    });
  }

  console.log(`✓ Seeded ${PALACES.length} palaces + ${STARS.length} stars`);
}

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