<?php
interface FlightBookingSystemInterface
{
public function getDepartureTimes(AirportInterface $origin, AirportInterface $destination);
public function getFlightCost(AirportInterface $origin, AirportInterface $destination, $time);
public function bookFlight(FlightInterface $flight, UserInterface $user);
}
interface AirportRepositoryInterface
{
public function getAllAirports();
public function getPossibleDestinationAirportsForOriginAirport(AirportInterface $origin);
}
interface FlightRepositoryInterface
{
public function fetchFlights($origin, $destination);
}
interface FlightInterface
{
public function getTime();
public function getCost(UserInterface $user);
}
interface AirportInterface
{
public function getNumberOfTerminals();
public function getRunwayLength();
public function getNumberOfCheckinDesks();
public function getCollectionOfDestinationAirports();
}
interface UserInterface
{
public function getPassportId();
public function getHungerLevel();
public function getDestinationAirport();
}