. */ namespace SP\Domain\User\In; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\DataModel\UserData; use SP\DataModel\UserPreferencesData; use SP\Domain\Common\In\RepositoryInterface; use SP\Domain\User\Services\UpdatePassRequest; use SP\Infrastructure\Database\QueryResult; /** * Class UserRepository * * @package SP\Infrastructure\User\Repositories */ interface UserRepositoryInterface extends RepositoryInterface { /** * Updates an user's pass * * @param int $id * @param UpdatePassRequest $passRequest * * @return int * @throws ConstraintException * @throws QueryException */ public function updatePassById(int $id, UpdatePassRequest $passRequest): int; /** * @param $login string * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getByLogin(string $login): QueryResult; /** * Returns items' basic information * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getBasicInfo(): QueryResult; /** * Updates user's master password * * @param int $id * @param string $pass * @param string $key * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function updateMasterPassById(int $id, string $pass, string $key): int; /** * Actualiza el último inicio de sesión del usuario en la BBDD. * * @param $id int El id del usuario * * @return int * @throws QueryException * @throws ConstraintException */ public function updateLastLoginById(int $id): int; /** * @param string $login * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function checkExistsByLogin(string $login): bool; /** * @param UserData $itemData * * @return int * @throws ConstraintException * @throws QueryException */ public function updateOnLogin(UserData $itemData): int; /** * Updates an user's pass * * @param int $id * @param UserPreferencesData $userPreferencesData * * @return int * @throws ConstraintException * @throws QueryException */ public function updatePreferencesById(int $id, UserPreferencesData $userPreferencesData): int; /** * Obtener el email de los usuarios de un grupo * * @param int $groupId * * @return QueryResult * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function getUserEmailForGroup(int $groupId): QueryResult; /** * Obtener el email de los usuarios * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getUserEmail(): QueryResult; /** * Return the email of the given user's id * * @param int[] $ids * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getUserEmailById(array $ids): QueryResult; /** * Returns the usage of the given user's id * * @param int $id * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getUsageForUser(int $id): QueryResult; }