. */ namespace SP\Domain\Account\Services; use SP\Core\Application; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\Domain\Account\AccountToFavoriteServiceInterface; use SP\Domain\Account\In\AccountToFavoriteRepositoryInterface; use SP\Domain\Common\Services\Service; /** * Class AccountFavoriteService * * @package SP\Domain\Account\Services */ final class AccountToFavoriteService extends Service implements AccountToFavoriteServiceInterface { private AccountToFavoriteRepositoryInterface $accountFavoriteRepository; public function __construct( Application $application, AccountToFavoriteRepositoryInterface $accountFavoriteRepository ) { $this->accountFavoriteRepository = $accountFavoriteRepository; parent::__construct($application); } /** * Obtener un array con los Ids de cuentas favoritas * * @throws ConstraintException * @throws QueryException */ public function getForUserId(int $id): array { return $this->accountFavoriteRepository ->getForUserId($id) ->getDataAsArray(); } /** * Añadir una cuenta a la lista de favoritos * * @throws ConstraintException * @throws QueryException */ public function add(int $accountId, int $userId): int { return $this->accountFavoriteRepository->add($accountId, $userId); } /** * Eliminar una cuenta de la lista de favoritos * * @throws ConstraintException * @throws QueryException */ public function delete(int $accountId, int $userId): int { return $this->accountFavoriteRepository->delete($accountId, $userId); } }