39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Model\Chatbot;
|
|
|
|
use App\Enum\HotelType;
|
|
use App\Enum\RoomType;
|
|
|
|
/**
|
|
* The filters of the search_trips tool, validated. They mirror the website's travel search:
|
|
* the travel period is matched by containment (start on or after `dateFrom`, end on or
|
|
* before `dateTo`), prices apply to the "ab" price.
|
|
*/
|
|
final readonly class TripCriteria
|
|
{
|
|
public function __construct(
|
|
public ?string $query = null,
|
|
public ?\DateTimeImmutable $dateFrom = null,
|
|
public ?\DateTimeImmutable $dateTo = null,
|
|
public ?string $country = null,
|
|
public ?string $region = null,
|
|
public ?string $concept = null,
|
|
public ?float $priceMin = null,
|
|
public ?float $priceMax = null,
|
|
public ?int $persons = null,
|
|
public ?HotelType $accommodation = null,
|
|
public ?string $board = null,
|
|
public ?RoomType $roomType = null,
|
|
public ?int $nightsMin = null,
|
|
public ?int $nightsMax = null,
|
|
public ?bool $bus = null,
|
|
public ?bool $daytrip = null,
|
|
public ?string $site = null,
|
|
public int $limit = 10,
|
|
) {
|
|
}
|
|
}
|