#ifndef USERS_REPOSITORY_H #define USERS_REPOSITORY_H #include "base_sql_table_repository.h" #include "users_repository_interface.h" #include class UsersRepository : public UsersRepositoryInterface, public BaseSqlTableRepository { public: explicit UsersRepository(QSqlDatabase &db, QObject *parent); // CRUD operations // clang-format off RepositoryResult createUser(const CreateUserRequest &request) override; RepositoryResult getUserById(qint32 userId, UserDTO &user) const override; RepositoryResult getUserByUsername(const QString &username, UserDTO &user) const override; RepositoryResult getAllUsers(QVector &users) const override; RepositoryResult updateUser(const UpdateUserRequest &request) override; RepositoryResult deleteUserById(qint32 userId) override; // clang-format on private: UserDTO mapQueryToDTO(const QSqlQuery &query) const; }; #endif // USERS_REPOSITORY_H