const TIME_ZONE = 'Europe/Berlin'; const TODAY_PROFILE_CHECK_TOLERANCE_STORE_IDS = new Set(['33875']); function getDateKeyInTimeZone(date, timeZone = TIME_ZONE) { const parsed = date instanceof Date ? date : new Date(date); if (Number.isNaN(parsed.getTime())) { return null; } const formatter = new Intl.DateTimeFormat('en-CA', { timeZone, year: 'numeric', month: '2-digit', day: '2-digit' }); return formatter.format(parsed); } function getBlockingProfilePickup({ storeId, profilePickups = [], targetPickup, now = new Date() }) { const pickUpsWithDate = profilePickups.filter((pickup) => pickup?.date); if (pickUpsWithDate.length === 0) { return null; } if (!TODAY_PROFILE_CHECK_TOLERANCE_STORE_IDS.has(String(storeId))) { return pickUpsWithDate[0]; } const todayKey = getDateKeyInTimeZone(now); const targetKey = getDateKeyInTimeZone(targetPickup?.date); if (!todayKey || !targetKey || targetKey === todayKey) { return pickUpsWithDate[0]; } return pickUpsWithDate.find((pickup) => getDateKeyInTimeZone(pickup.date) !== todayKey) || null; } module.exports = { TODAY_PROFILE_CHECK_TOLERANCE_STORE_IDS, getBlockingProfilePickup };