#ifndef MOVIES_REPOSITORY_H #define MOVIES_REPOSITORY_H #include "base_sql_table_repository.h" #include "movies_repository_interface.h" #include class MoviesRepository : public MoviesRepositoryInterface, public BaseSqlTableRepository { public: explicit MoviesRepository(QSqlDatabase &database, QObject *parent); // CRUD operations // clang-format off RepositoryResult createMovie(const CreateMovieRequest &request) override; RepositoryResult getMovieById(qint32 movieId, MovieDTO &movie) const override; RepositoryResult getAllMovies(QVector &movies) const override; RepositoryResult updateMovie(const UpdateMovieRequest &request) override; RepositoryResult deleteMovieById(qint32 movieId) override; // clang-format on private: MovieDTO mapQueryToDTO(const QSqlQuery &query) const; }; #endif // MOVIES_REPOSITORY_H