<?php

namespace OpenDominion\Contracts\Services\Actions;

use OpenDominion\Models\Dominion;

interface RezoneActionServiceContract
{
    /**
     * Does a rezone action for a Dominion.
     *
     * @param \OpenDominion\Models\Dominion $dominion
     *   The dominion to rezone.
     * @param array $remove
     *   The land to remove.
     * @param array $add
     *   The land to add.
     *
     * @return int
     *   The amount of platinum spent.
     * @throws \OpenDominion\Exceptions\BadInputException
     * @throws \OpenDominion\Exceptions\NotEnoughResourcesException
     * @throws \OpenDominion\Exceptions\DominionLockedException
     */
    public function rezone(Dominion $dominion, array $remove, array $add);
}

<?php

namespace OpenDominion\Contracts\Services\Actions;

use OpenDominion\Exceptions\BadInputException;
use OpenDominion\Exceptions\DominionLockedException;
use OpenDominion\Exceptions\NotEnoughResourcesException;
use OpenDominion\Models\Dominion;

interface RezoneActionServiceContract
{
    /**
     * Does a rezone action for a Dominion.
     *
     * @param Dominion $dominion
     * @param array $remove Land to remove
     * @param array $add Land to add.
     * @return array
     * @throws DominionLockedException
     * @throws BadInputException
     * @throws NotEnoughResourcesException
     */
    public function rezone(Dominion $dominion, array $remove, array $add);
}

Refactor rezone action service contract
Refactor rezone action service contract
