From 067bb1453af3081d380099391fd63eb93835d2a6 Mon Sep 17 00:00:00 2001 From: Scrum4Me Agent <30029041+madhura68@users.noreply.github.com> Date: Thu, 14 May 2026 20:22:08 +0200 Subject: [PATCH] feat(jobs): voeg lib/jobs-time-filter.ts toe met tijdvenster-predikaat Co-Authored-By: Claude Sonnet 4.6 --- lib/jobs-time-filter.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/jobs-time-filter.ts diff --git a/lib/jobs-time-filter.ts b/lib/jobs-time-filter.ts new file mode 100644 index 0000000..405248e --- /dev/null +++ b/lib/jobs-time-filter.ts @@ -0,0 +1,21 @@ +export const JOBS_TIME_FILTER_VALUES = ['1h', '24h', 'all'] as const; + +export type JobsTimeFilter = (typeof JOBS_TIME_FILTER_VALUES)[number]; + +export const DEFAULT_JOBS_TIME_FILTER: JobsTimeFilter = 'all'; + +const WINDOW_MS: Record<'1h' | '24h', number> = { + '1h': 60 * 60 * 1000, + '24h': 24 * 60 * 60 * 1000, +}; + +export function isWithinTimeWindow( + createdAt: Date | string, + filter: JobsTimeFilter, + now: number = Date.now(), +): boolean { + if (filter === 'all') return true; + const ts = new Date(createdAt).getTime(); + if (Number.isNaN(ts)) return true; + return ts >= now - WINDOW_MS[filter]; +}