Приложение для бронирования: как сохранить доступность?
Я создаю приложение для бронирования, где люди могут записать некоторые встречи в другом календаре. бизнес-потребности следующие:
- кто-то должен быть в состоянии настроить некоторые повторяющиеся возможности в своем календаре: каждый понедельник с 10:00 до 12:00 и с 15:00 до 18:00.
- кто-то должен иметь возможность настроить доступность по времени: понедельник, 24 декабря, с 10:00 до 12:00 и с 15:00 до 16:00, и это должно полностью перезаписать периодическую доступность для данного дня.
- кто-то должен иметь возможность настроить некоторые временные недоступности: понедельник, 24 декабря, с 10 до 11, и это должно быть приоритетным по доступности (повторяющимся или синхронизированным).
Принимая во внимание 3 следующих примера, в попытке бронирования в понедельник, 24 декабря, с 10 до 10:30 утра должно быть отказано.
Я борюсь с тем, как спроектировать эту систему для базы данных.
Заказы будут храниться в их собственной таблице, и они должны действовать как недоступности. Но как насчет конфигурации доступности? Должен ли я хранить доступность? недоступности? и то и другое?
Будем весьма благодарны за любые советы по поводу модели календаря.