/**
 * Безопасно извлекает числовое значение по ключу из объекта.
 * Поддерживает как `number`, так и строки-числа.
 */
export function readNumericField(o: Record<string, unknown>, key: string): number | null {
  const v = o[key];
  if (typeof v === 'number' && Number.isFinite(v)) {
    return v;
  }
  if (typeof v === 'string' && v.trim() !== '') {
    const parsed = Number(v);
    return Number.isFinite(parsed) ? parsed : null;
  }
  return null;
}
