/** 玩家用户名：仅英文字母与数字，7–32 位 */
export const PLAYER_USERNAME_PATTERN = /^[a-zA-Z0-9]{7,32}$/;

export const PLAYER_USERNAME_RULE_MESSAGE =
  '玩家用户名仅可使用英文字母和数字（7–32 位），不可含中文或特殊符号';

export function isValidPlayerUsername(username: string): boolean {
  return PLAYER_USERNAME_PATTERN.test(username.trim());
}

export function assertPlayerUsername(username: string): void {
  const trimmed = username.trim();
  if (!trimmed) {
    throw new Error('玩家用户名不能为空');
  }
  if (!isValidPlayerUsername(trimmed)) {
    throw new Error(PLAYER_USERNAME_RULE_MESSAGE);
  }
}
