import { PrismaClient } from "@prisma/client";
import { INITIAL_POSTS } from "../components/mockData";

const prisma = new PrismaClient();

async function main() {
  console.log("Seeding database with initial posts...");

  for (const post of INITIAL_POSTS) {
    await prisma.post.upsert({
      where: { id: post.id },
      update: {
        title: post.title,
        content: post.content,
        likes: post.likes,
      },
      create: {
        id: post.id,
        type: post.type,
        date: post.date,
        timestamp: post.timestamp,
        mood: post.mood as any,
        moodLabel: post.moodLabel,
        title: post.title,
        content: post.content,
        marginNotes: post.marginNotes || [],
        tags: post.tags || [],
        likes: post.likes || 0,
        highlightWords: post.highlightWords || [],
        authorNote: post.authorNote,
        imageUrl: post.imageUrl,
        imageCaption: post.imageCaption,
        codeSnippet: post.codeSnippet,
        codeLanguage: post.codeLanguage,
        audioDuration: post.audioDuration,
        audioTitle: post.audioTitle,
        stampedText: post.stampedText,
      },
    });
  }

  console.log("Seeding completed successfully!");
}

main()
  .catch((e) => {
    console.error("Error during seeding:", e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });
