import type { Day } from '../types' export const getDayOrder = (day: Day, days: Day[]): number => day.day_number ?? days.indexOf(day) export const isDayInAccommodationRange = ( day: Day, startDayId: number, endDayId: number, days: Day[], ): boolean => { const startDay = days.find(d => d.id === startDayId) const endDay = days.find(d => d.id === endDayId) if (!startDay || !endDay) { // Endpoint days not in the loaded array (e.g. sparse test data or partial load). // Fall back to numeric ID range — acceptable since non-monotonic IDs only arise when // both endpoints are present in a fully-loaded trip's days list. return day.id >= Math.min(startDayId, endDayId) && day.id <= Math.max(startDayId, endDayId) } const lo = Math.min(getDayOrder(startDay, days), getDayOrder(endDay, days)) const hi = Math.max(getDayOrder(startDay, days), getDayOrder(endDay, days)) return getDayOrder(day, days) >= lo && getDayOrder(day, days) <= hi }