[Back] <?php
/*
* Copyright (c) 2022 LatePoint LLC. All rights reserved.
*
* This class is used to create booked periods in resources
*/
namespace LatePoint\Misc;
class BookedPeriod extends BlockedPeriod {
public int $buffer_before = 0;
public int $buffer_after = 0;
public int $total_attendees = 1;
public static function create_from_booking_model(\OsBookingModel $booking): BookedPeriod{
return new BookedPeriod([ 'start_date' => $booking->start_date,
'end_date' => $booking->end_date,
'start_time' => $booking->start_time,
'end_time' => $booking->end_time,
'buffer_before' => $booking->buffer_before,
'buffer_after' => $booking->buffer_after,
'total_attendees' => $booking->total_attendees ?? 1,
'agent_id' => $booking->agent_id,
'service_id' => $booking->service_id,
'location_id' => $booking->location_id
]);
}
function start_time_with_buffer(): int{
return $this->start_time - $this->buffer_before;
}
function end_time_with_buffer(): int{
return $this->end_time + $this->buffer_after;
}
public static function allowed_props(): array{
return ['start_date',
'end_date',
'start_time',
'end_time',
'buffer_before',
'buffer_after',
'total_attendees',
'service_id',
'agent_id',
'location_id'];
}
}