(function () {
  const SUPABASE_URL =
    window.SUPABASE_URL ||
    "https://mhvavldukotjihemgrhn.supabase.co";
  const SUPABASE_ANON_KEY =
    window.SUPABASE_ANON_KEY ||
    "sb_publishable_3aPEKsz2BzKMKONyKco_fg_E9I2hvSU";

  function getClient() {
    if (!window.supabase) {
      console.warn("Supabase SDK 未加载，auth-ui.js 跳过执行。");
      return null;
    }
    return window.supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
  }

  function getDisplayName(user, profile) {
    return (
      profile?.display_name ||
      user?.user_metadata?.display_name ||
      user?.user_metadata?.username ||
      user?.user_metadata?.name ||
      user?.email?.split("@")[0] ||
      "用户"
    );
  }

  async function loadProfileRole(client, user) {
    if (!client || !user) {
      return { role: "user", profile: null };
    }

    try {
      const { data, error } = await client
        .from("profiles")
        .select("*")
        .eq("id", user.id)
        .maybeSingle();

      if (error) throw error;

      return {
        role: data?.role || "user",
        profile: data || null
      };
    } catch (err) {
      console.error("读取 profiles 角色失败：", err);
      return { role: "user", profile: null };
    }
  }

  async function renderUnifiedUserActions() {
    const userActions = document.getElementById("userActions");
    if (!userActions) return;

    const client = getClient();
    if (!client) return;

    try {
      const { data } = await client.auth.getUser();
      const user = data?.user;

      if (!user) {
        userActions.innerHTML = `
          <a class="login-btn" href="auth.html">登录 / 注册</a>
        `;
        return;
      }

      const { role, profile } = await loadProfileRole(client, user);
      const displayName = getDisplayName(user, profile);
      const isAdmin = role === "admin" || role === "super_admin";

      userActions.innerHTML = `
        <span class="user-pill">欢迎，${displayName}</span>
        <a class="login-btn" href="my-posts.html">我的帖子</a>
        ${isAdmin ? `<a class="login-btn" href="admin-center.html">管理员中心</a>` : ""}
        <button id="logoutBtn" class="logout-btn" type="button">退出</button>
      `;

      const logoutBtn = document.getElementById("logoutBtn");
      if (logoutBtn) {
        logoutBtn.addEventListener("click", async function () {
          await client.auth.signOut();
          window.location.href = "auth.html";
        });
      }
    } catch (err) {
      console.error("统一登录区渲染失败：", err);
      userActions.innerHTML = `
        <a class="login-btn" href="auth.html">登录 / 注册</a>
      `;
    }
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", renderUnifiedUserActions);
  } else {
    renderUnifiedUserActions();
  }
})();