export function channelGroup(channelCode) { const value = String(channelCode || '').trim().toUpperCase() if (value.startsWith('EXX_') || ['EXXHK', 'EXXHWK', 'NYEXX'].includes(value)) return 'EXX' if (value.startsWith('MATSON_CLX_') || ['ZBYHK', 'ZBYHWK', 'ZBYHP'].includes(value)) return 'MATSON_CLX' if (value.startsWith('MATSON_MAX_') || ['BYHK', 'BYHWK', 'BYHP'].includes(value)) return 'MATSON_MAX' if (value.startsWith('HEDE_') || ['HDHK', 'HDHWK', 'HDHP'].includes(value)) return 'HEDE' if (value.startsWith('OA_LA_') || value === 'OA_PARCEL' || ['PCHK', 'PCHWK', 'PCKK', 'PCHP'].includes(value)) return 'OA_LA' if (value.startsWith('OA_CHICAGO_') || value === 'CPHT') return 'OA_CHICAGO' if (value.startsWith('OA_HOUSTON_') || value === 'HPHK') return 'OA_HOUSTON' if (value.startsWith('OA_SAVANNAH_') || value === 'SPHK') return 'OA_SAVANNAH' if (['OA_NEW_YORK_TRUCK', 'NPHK', 'NPHWK'].includes(value)) return 'OA_NEW_YORK_TRUCK' throw new Error(`unsupported smart-loading channel group: ${channelCode}`) }