Условие
Необходимо реализовать сервис бронирования переговорок для стажёра Backend в Avito со следующими сущностями и требованиями:
- Администратор: создание переговорок, создание расписания (фиксированные слоты по 30 минут, создается один раз), просмотр всех броней с пагинацией.
- Пользователь: просмотр переговорок, просмотр доступных слотов на дату, создание брони, отмена брони, просмотр своих броней.
- Бизнес-ограничения: один слот — одна активная бронь; слоты не пересекаются; даты и время в UTC; администратор не может бронировать; отмена брони идемпотентна; бронирование на прошедшее время запрещено (ошибка 400); получение списка слотов — самый высоконагруженный эндпоинт (требование по времени…