// 头像工具函数
import { API_BASE_URL } from "@/lib/config";

/**
 * 获取完整的头像 URL
 * 如果 avatarUrl 已经是完整 URL（以 http:// 或 https:// 开头），直接返回
 * 否则拼接 API_BASE_URL
 */
export function getAvatarUrl(avatarUrl: string | null | undefined): string | null {
  if (!avatarUrl) {
    return null;
  }
  // 如果已经是完整 URL，直接返回
  if (avatarUrl.startsWith("http://") || avatarUrl.startsWith("https://")) {
    return avatarUrl;
  }
  // 如果是相对路径，拼接 API_BASE_URL
  // 确保路径以 / 开头
  const path = avatarUrl.startsWith("/") ? avatarUrl : `/${avatarUrl}`;
  // 形态2（同域 /api）下，后端返回的头像通常是 /uploads/... 这类相对路径
  // 保持拼接行为不变：API_BASE_URL 为空则走同域
  return `${API_BASE_URL}${path}`;
}

/**
 * 根据用户信息生成头像颜色
 */
export function getAvatarColor(seed: string | number): string {
  const value = typeof seed === "string" ? seed.length : seed;
  return `hsl(${(value * 137.5) % 360}, 70%, 50%)`;
}

/**
 * 获取头像显示文本（首字母或用户名）
 */
export function getAvatarInitial(username: string, nickname?: string): string {
  const displayName = nickname || username || "?";
  return displayName.charAt(0).toUpperCase();
}

