Пакет Laravel Zap — це гнучка система управління розкладом з глибокою інтеграцією в Laravel. За допомогою Zap ви можете створювати календарні розклади для Eloquent моделей, таких як події, призначення, повторювані заходи та інше:
use Zap\Facades\Zap;
// Щотижнева зустріч команди
$meeting = Zap::for($user)
->named('Командний стендап')
->from('2025-01-01')
->to('2025-12-31')
->addPeriod('09:00', '09:30')
->weekly(['monday', 'wednesday', 'friday'])
->save();
Під час роботи з управлінням розкладом необхідно виконувати запити для перевірки доступності моделей, знаходити наступні вільні часові слоти, усувати конфлікти в розкладі тощо:
// Перевірка доступності
$available = $user->isAvailableAt('2025-03-15', '14:00', '16:00');
// Отримання вільних слотів
$slots = $user->getAvailableSlots(
date: '2025-03-15',
dayStart: '09:00',
dayEnd: '17:00',
slotDuration: 60
);
// Перевірка на конфлікти
$conflicts = Zap::findConflicts($schedule);
// Отримання розкладів на дату
$todaySchedules = $user->schedulesForDate(today());
Цей пакет ідеально підходить для систем бронювання призначень, управління кімнатами для зустрічей, управління змінами працівників та інших додатків на основі розкладу.
👨💻 Ознайомтеся з проєктом на GitHub: ludoguenet/laravel-zap