/**
 * statAbbrev — the ONE canonical SHORT stat label ("total_bases" -> "TB").
 *
 * The compact, mono, grid-aligned surfaces (leaderboard, breadth, top signals)
 * want abbreviations, not the long "Total Bases" form gradeAdapter.statLabel
 * emits for the roomy grade card. Raw snake_case ("stolen_bases U0.5") is a
 * display bug — every ranked/gridded surface routes stat_type through here.
 *
 * CommonJS so it's importable by .tsx (allowJs) AND unit-testable by Jest.
 */

'use strict';

const STAT_ABBREV = {
  // MLB — batting
  total_bases: 'TB', home_runs: 'HR', hits: 'H', rbi: 'RBI', runs: 'R',
  stolen_bases: 'SB', doubles: '2B', triples: '3B', walks: 'BB', singles: '1B',
  // MLB — pitching
  strikeouts: 'K', hits_allowed: 'HA', earned_runs: 'ER', innings_pitched: 'IP',
  outs: 'OUTS', walks_allowed: 'BB',
  // NBA / WNBA
  points: 'PTS', rebounds: 'REB', assists: 'AST', threes: '3PT', steals: 'STL',
  blocks: 'BLK', pra: 'PRA', turnovers: 'TO', pr: 'PR', pa: 'PA', ra: 'RA',
  // NHL / soccer (best-effort)
  shots_on_goal: 'SOG', saves: 'SV', goals: 'G', shots: 'SH',
};

/** Short display label for a stat_type id; unknown ids upper-case the words. */
function statAbbrev(stat) {
  if (!stat) return '';
  if (STAT_ABBREV[stat]) return STAT_ABBREV[stat];
  return String(stat).replace(/_/g, ' ').toUpperCase();
}

module.exports = { STAT_ABBREV, statAbbrev };
