. */ namespace SP\Domain\Account\Services; use SP\Core\Application; use SP\Domain\Account\Ports\AccountToFavoriteRepository; use SP\Domain\Account\Ports\AccountToFavoriteService; use SP\Domain\Common\Services\Service; use SP\Domain\Core\Exceptions\ConstraintException; use SP\Domain\Core\Exceptions\QueryException; use SP\Domain\Core\Exceptions\SPException; /** * Class AccountToFavorite */ final class AccountToFavorite extends Service implements AccountToFavoriteService { public function __construct( Application $application, private readonly AccountToFavoriteRepository $accountFavoriteRepository ) { parent::__construct($application); } /** * Obtener un array con los Ids de cuentas favoritas * * @throws ConstraintException * @throws QueryException * @throws SPException */ 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): bool { return $this->accountFavoriteRepository->delete($accountId, $userId); } }