/**
 * 头像颜色工具
 * 基于 VI 设计系统 §8 头像颜色系统
 *
 * 用法：
 *   import { nameToAvatarColor } from '../../utils/avatar-color'
 *   const avatarColor = nameToAvatarColor('王先生')  // => 'blue'
 *   // wxml: class="avatar-{{rec.avatarColor}}"
 */

/** 24 色标准色板 key 列表（与 app.wxss .avatar-{key} 一一对应） */
export const AVATAR_PALETTE = [
  'blue',
  'indigo',
  'violet',
  'purple',
  'fuchsia',
  'pink',
  'rose',
  'red',
  'orange',
  'amber',
  'yellow',
  'lime',
  'green',
  'emerald',
  'teal',
  'cyan',
  'sky',
  'slate',
  'coral',
  'mint',
  'lavender',
  'gold',
  'crimson',
  'ocean',
] as const

export type AvatarColorKey = typeof AVATAR_PALETTE[number]

/**
 * 根据名字首字（或任意字符串）稳定映射到头像颜色 key。
 * 相同输入永远返回相同颜色，适合用于客户/助教头像。
 *
 * @param name 姓名或任意标识符（取第一个字符的 charCode）
 * @returns AvatarColorKey
 */
export function nameToAvatarColor(name: string): AvatarColorKey {
  const code = (name?.charCodeAt(0) ?? 0)
  return AVATAR_PALETTE[code % AVATAR_PALETTE.length]
}
