2026-06-11 19:03:29 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of available seats for each time block
|
|
|
|
|
*/
|
|
|
|
|
class RsvTimetableAvailability {
|
|
|
|
|
/**
|
2026-06-14 10:01:24 +02:00
|
|
|
* @param array<int,int> $occupancy Number of available seats for each time block
|
|
|
|
|
* @param array<int,int> $lead_time_minutes Minimum lead time in minutes required for each block
|
2026-06-11 19:03:29 +02:00
|
|
|
*/
|
|
|
|
|
public function __construct(
|
|
|
|
|
public int $from_minutes,
|
|
|
|
|
public int $to_minutes,
|
|
|
|
|
public int $block_size_in_minutes,
|
2026-06-14 10:01:24 +02:00
|
|
|
public array $occupancy,
|
|
|
|
|
public array $lead_time_minutes = []
|
2026-06-11 19:03:29 +02:00
|
|
|
) { }
|
|
|
|
|
|
2026-06-14 10:01:24 +02:00
|
|
|
public function push_block(int $capacity, int $min_lead_time_minutes = 0) {
|
|
|
|
|
$this->occupancy[] = $capacity;
|
|
|
|
|
$this->lead_time_minutes[] = $min_lead_time_minutes;
|
|
|
|
|
$this->to_minutes += $this->block_size_in_minutes;
|
2026-06-11 19:03:29 +02:00
|
|
|
}
|
|
|
|
|
}
|