Как правильно сохранить информацию в БД расчета срока доставки с учетом режима работы?
Существует информация о режиме работы:
склада
сазовый
с понедельника по пятницу с 9 до 18
изменения
суббота с 10 до 15
с 1 по 9 января 2018 года работы с 10 до 15
офиса
базовый
с понедельника по субботу с 11 до 16
изменения
1 января 2018 года выходной
2 января 2018 года с 11 до 12
службы доставки
базовый
с понедельнка по пятницу с 09 до 21
и
срок доставки от склада в часах
например, 15 часов
Стоит вопрос
как хранить в базе данных MySQL режимы работы складов, офиса и службы доставки наиболее правильно, чтобы рассчитать при помощи SQL запросов время доставки
и при этом:
1) можно было бы задавать базовый режим работы на какой-то период (с 01.01.2018 по 25.06.2018) или на неопределенное время (с 06.06.2018);
2) не нужно было бы постоянно довносить информацию в БД об известном базовом режиме работы из п. 1 на новый период;
3) режим работы мог бы изменяться на какой-то определенный период (1 мая выходной, с 1 по 9 января режим работы с 10 до 15);
4) по этим данным легко можно было бы получить дату и время доставки на определенную дату и время с учетом базового и измененного режимов работы, которая начнется в ближайшее время одновременной работы склада и офиса и далее будет рассчитываться в рамках времени работы службы доставки.
Для примера указанного выше для 1 января 2018 года должно быть:
ближайшее время работы офиса и склада 2 января 11 часов
15 часов в рамках режима работы службы начиная со 2 января 2018 года 11 часов будет 3 января 15 часов.