import { readFileSync, existsSync } from 'fs' import path from 'path' import { atomicWriteJSON } from './file-utils' import { DEFAULT_HOURS } from './hours-config' import type { HoursConfig } from './hours-config' export type { DayHours, WeekHours, HoursConfig } from './hours-config' export { DEFAULT_HOURS, minsToTime, timeToMins } from './hours-config' const HOURS_PATH = path.join(process.cwd(), 'data', 'hours.json') export function getHoursConfig(): HoursConfig { if (!existsSync(HOURS_PATH)) return DEFAULT_HOURS try { const saved = JSON.parse(readFileSync(HOURS_PATH, 'utf-8')) as Partial return { delivery: { ...DEFAULT_HOURS.delivery, ...(saved.delivery ?? {}) }, pickup: { ...DEFAULT_HOURS.pickup, ...(saved.pickup ?? {}) }, deliveryWindowMinutes: saved.deliveryWindowMinutes ?? DEFAULT_HOURS.deliveryWindowMinutes, leadTimeHours: saved.leadTimeHours ?? DEFAULT_HOURS.leadTimeHours, } } catch { return DEFAULT_HOURS } } export function saveHoursConfig(config: HoursConfig): void { atomicWriteJSON(HOURS_PATH, config) }