Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Game\Services;
- use Game\Repositories\AirportRepositoryInterface;
- use Game\Repositories\AirlineRepositoryInterface;
- class AirportDealService
- {
- public $fees;
- public function __construct(AirportRepositoryInterface $airportRepository, AirlineRepositoryInterface $airlineRepository)
- {
- $this->airportRepository = $airportRepository;
- $this->airlineRepository = $airlineRepository;
- }
- //Sign a deal with the airport
- public function sign ($airport_id, $airline_id)
- {
- $airline = $this->airlineRepository->getById($airline_id);
- $this->calculate($airport_id);
- $this->airlineRepository->signDeal($airline_id, $airport_id, $this->fees);
- return true;
- }
- //Calculate fees for specific airport
- public function calculate ($airport_id)
- {
- $airport = $this->airportRepository->getById($airport_id);
- $airport_size_factor = pow($airport->role, 3); // 1 to 125
- $this->fees = array('operation_fee' => 500*ceil($airport_size_factor/20), 'weekly_fee' => 3000*ceil($airport_size_factor/10), 'passenger_fee' => 10+floor($airport_size_factor/2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment