. */ namespace SP\Domain\Account\In; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\Domain\Account\Services\AccountRequest; use SP\Infrastructure\Database\QueryResult; /** * Class AccountToUserRepository * * @package SP\Infrastructure\Account\Repositories */ interface AccountToUserRepositoryInterface { /** * Actualizar la asociación de grupos con cuentas. * * @param AccountRequest $accountRequest * * @param bool $isEdit * * @return void * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function updateByType(AccountRequest $accountRequest, bool $isEdit): void; /** * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta * @param bool $isEdit * * @return int * @throws ConstraintException * @throws QueryException */ public function deleteTypeByAccountId(int $id, bool $isEdit): int; /** * Crear asociación de usuarios con cuentas. * * @param AccountRequest $accountRequest * @param bool $isEdit * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function addByType(AccountRequest $accountRequest, bool $isEdit): int; /** * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta * * @return int * @throws ConstraintException * @throws QueryException */ public function deleteByAccountId(int $id): int; /** * Obtiene el listado de usuarios de una cuenta. * * @param int $id con el id de la cuenta * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getUsersByAccountId(int $id): QueryResult; }