/**
 * Auxiliares para a base de estações meteorológicas (Anexo C).
 */

import {
  METEOROLOGICAL_STATIONS,
  getStationById,
  searchStations,
  type MeteorologicalStation,
} from './nbr-tables/stations';

export { METEOROLOGICAL_STATIONS, getStationById, searchStations };
export type { MeteorologicalStation };

/**
 * Estima V₀ a partir de coordenadas geográficas por interpolação das
 * isopletas (Figura 1). Heurística simplificada baseada em latitude:
 *  - Sul do Brasil (|lat| > 25°): V₀ = 45 m/s
 *  - Sudeste/Centro-Oeste (15° a 25°): V₀ = 35 m/s
 *  - Norte/Nordeste (|lat| < 15°): V₀ = 30 m/s
 *
 * Para precisão, prefira a base de estações.
 */
export function estimateV0FromLatitude(latitude: number): number {
  const lat = Math.abs(latitude);
  if (lat > 25) return 45;
  if (lat >= 15) return 35;
  return 30;
}

/** Retorna a estação mais próxima por nome (heurística simples) */
export function findClosestStation(target: string): MeteorologicalStation | undefined {
  const q = target.trim().toLowerCase();
  if (!q) return undefined;
  const matches = searchStations(q);
  if (matches.length === 0) return undefined;
  return matches[0];
}