export const getStringProp = (payload, key) => { if (typeof payload !== 'object' || payload === null || !(key in payload)) return ''; const value = payload[key]; return typeof value === 'string' ? value.trim() : String(value ?? '').trim(); }; export const getNumberProp = (payload, keys) => { for (const key of keys) { const raw = payload[key]; if (typeof raw === 'number' && Number.isFinite(raw)) return raw; if (typeof raw === 'string') { const parsed = Number(raw); if (Number.isFinite(parsed)) return parsed; } } return null; }; export const normalizeTournamentSlug = (value) => { const trimmed = value.trim(); if (!trimmed) return ''; return trimmed .replace(/^https?:\/\/[^/]+\//i, '') .replace(/^tournaments\//i, '') .replace(/^\/+/, ''); };