Є сайт, на ньому є онлайн бронювання.
При бронюванні користувач обирає программу, кожна з программ має свою тривалість і вартість. Користувач може зробити бронювання коли заклад працює (час роботи вказується в адмін панелі сайту). Після оформлення бронювання запис з'являеться в базі даних. Запис про бронювання має наступні даніі:
- id (id бронювання)
- member_id (id користувача)
- program_id (id программи яку обрав користувач)
- duration (тривалість программи яку обрав користувач)
- date (дата та час початку бронювання)
- end_date (дата та час кінця бронювання)
Мені потрібно щоб функція повертала вільнний час для бронювання основуючись вже на створених бронюваннях та на тивалості программи яку обрав користувач. Наприклад:
Користувач робить бронювання, обрав программу тивалістю 3 години, обирає дату 09-05-2023 на 11:15, кінець бронювання в цьому випадку буде 14:00. Скрипт повинен перевірити чи вільний цей час і не перетинається з іншими бронюваннями, якщо вільний то створює запис.
Інший користувач заходить на сайт і робить інше бронювання, він обирає программу. тривалістю 2 години. Система повинна йому видати вільний час, в данному випадку це з 09:00 ранку до 11:00, потім з 14:15 до 16:15, потім з 16:30 до 18:30 і так далі
Інтервал між бронюваннями(це коли 1 бронювання закінчується, а інше може початися тільки через цей час, в прикладі це 15 хвилин) налаштовується в адмін панелі сайту
Час бронювання розраховується від часу відкриття закладу і до закриття. Якщо це початок робочого дня то воно починаеться з початку відкриття(15 хвилин не додаємо)
Ще раз: тривалість программ може бути різна
Інші моменти можемо обсудити в особистих повідомленнях