import { DoseStatus } from '../types'; export interface DoseStatusParams { takenAt?: string; snoozedUntil?: string; scheduledTime: Date; now: Date; } export const determineDoseStatus = ({ takenAt, snoozedUntil, scheduledTime, now, }: DoseStatusParams): DoseStatus => { if (takenAt) { return DoseStatus.TAKEN; } if (snoozedUntil) { const snoozeTime = new Date(snoozedUntil); if (!Number.isNaN(snoozeTime.getTime())) { if (snoozeTime.getTime() > now.getTime()) { return DoseStatus.SNOOZED; } return DoseStatus.UPCOMING; } } if (scheduledTime.getTime() < now.getTime()) { return DoseStatus.MISSED; } return DoseStatus.UPCOMING; };