'use strict'

const isRoughlyEqual = require('is-roughly-equal')
const {DateTime} = require('luxon')

const hour = 60 * 60 * 1000
const week = 7 * 24 * hour

// next Monday 10 am
const createWhen = (timezone, locale) => {
	return DateTime.fromMillis(Date.now(), {
		zone: timezone,
		locale,
	}).startOf('week').plus({weeks: 1, hours: 10}).toJSDate()
}

const isValidWhen = (actual, expected) => {
	const ts = +new Date(actual)
	if (Number.isNaN(ts)) return false
	// the timestamps might be from long-distance trains
	return isRoughlyEqual(14 * hour, +expected, ts)
}

module.exports = {
	hour, createWhen, isValidWhen
}