"use client";

import { useEffect } from "react";

import { seedAuditEntries } from "@/data/audit-log";
import { initSiliSuiteDemoData } from "@/lib/auth";
import { seedAuditLog } from "@/lib/storage/audit";
import { seedIntegrations } from "@/lib/storage/integrations";
import { SS_AUDIT_LOG_KEY, SS_INTEGRATIONS_KEY } from "@/lib/storage/keys";
import { migrateLegacyStorage } from "@/lib/storage/migrate";
import { seedAdminDemoBackfill, seedPhase2Data } from "@/lib/storage/seed-phase2";
import { applyThemeMode, applyThemePreset } from "@/lib/preferences/theme-utils";
import { seedPhase3Data } from "@/lib/storage/seed-phase3";

export function DemoDataInit() {
  useEffect(() => {
    const root = document.documentElement;
    const mode = root.getAttribute("data-theme-mode") ?? "dark";
    applyThemeMode(mode === "light" ? "light" : "dark");
    applyThemePreset("silisuite");
    root.setAttribute("data-theme-preset", "silisuite");
    root.classList.add("dark");
    root.style.colorScheme = "dark";

    migrateLegacyStorage();
    initSiliSuiteDemoData();
    seedPhase2Data();
    seedAdminDemoBackfill();
    seedPhase3Data();
    if (!localStorage.getItem(SS_INTEGRATIONS_KEY)) {
      seedIntegrations();
    }
    if (!localStorage.getItem(SS_AUDIT_LOG_KEY)) {
      seedAuditLog(seedAuditEntries);
    }
  }, []);

  return null;
}
