import { YardCountry, type ScheduleTradeDirection } from '@edr/types'; type YardLike = { country?: string | null }; /** * Derive trade direction from origin and destination yard countries. * Ethiopia → Djibouti = EXPORT, Djibouti → Ethiopia = IMPORT, same country = * DOMESTIC (shown as "Intercity"; scheduling/contracts reject it for now). * Comparison is strict against the YardCountry enum values the yards table is * constrained to; the trim/case fold only shields legacy rows. */ export function deriveTradeDirection( originYard: YardLike, destinationYard: YardLike, ): ScheduleTradeDirection { const origin = normalizeCountry(originYard.country); const destination = normalizeCountry(destinationYard.country); if (origin === YardCountry.DJIBOUTI && destination === YardCountry.ETHIOPIA) { return 'IMPORT'; } if (origin === YardCountry.ETHIOPIA && destination === YardCountry.DJIBOUTI) { return 'EXPORT'; } return 'DOMESTIC'; } function normalizeCountry(country: string | null | undefined): YardCountry | null { const folded = country?.trim().toLowerCase(); if (folded === YardCountry.ETHIOPIA.toLowerCase()) return YardCountry.ETHIOPIA; if (folded === YardCountry.DJIBOUTI.toLowerCase()) return YardCountry.DJIBOUTI; return null; }