<?php

namespace SugarCalendarBookings\Calendar;

use DateTimeImmutable;
use DateTimeZone;
use SugarCalendarBookings\Calendar\Admin\CalendarQuery;
use SugarCalendarBookings\Support\AbstractDTO;

/**
 * Context for computing calendar display bounds.
 *
 * @since 1.4.0
 *
 * @property DateTimeImmutable[] $dates
 * @property array               $appointments
 * @property CalendarQuery       $query
 * @property DateTimeZone        $display_tz
 */
class DisplayBoundsContext extends AbstractDTO {

	/**
	 * Required fields.
	 *
	 * @since 1.4.0
	 *
	 * @var array
	 */
	protected $required_fields = [ 'dates', 'appointments', 'query', 'display_tz' ];
}
