// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "Record.hpp" #include #include namespace db::multimedia_files { class MultimediaFilesDB; } // namespace db::multimedia_files namespace db::multimedia_files::query { class Add; class AddOrEdit; class AddOrEditResult; class AddResult; class Edit; class EditResult; class Get; class GetAlbumsLimited; class GetAlbumsLimitedResult; class GetArtistsLimited; class GetArtistsLimitedResult; class GetByPath; class GetCount; class GetCountAlbums; class GetCountArtists; class GetCountForAlbum; class GetCountForArtist; class GetCountResult; class GetLimited; class GetLimitedByPaths; class GetLimitedForAlbum; class GetLimitedForArtist; class GetLimitedResult; class GetResult; class Remove; class RemoveAll; class RemoveAll; class RemoveByPath; class RemoveResult; class GetCountForPath; class GetOffsetByPath; class GetOffsetResult; } // namespace db::multimedia_files::query namespace db::multimedia_files { using MultimediaFilesRecordField = TableFields; using MultimediaFilesRecord = TableRow; class MultimediaFilesRecordInterface : public RecordInterface { public: explicit MultimediaFilesRecordInterface(MultimediaFilesDB *db); std::unique_ptr runQuery(std::shared_ptr query) override; private: std::unique_ptr runQueryImplAdd( const std::shared_ptr &query); std::unique_ptr runQueryImplEdit( const std::shared_ptr &query); std::unique_ptr runQueryImplAddOrEdit( const std::shared_ptr &query); std::unique_ptr runQueryImplGet( const std::shared_ptr &query); std::unique_ptr runQueryImplGetLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplGetLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplRemove( const std::shared_ptr &query); std::unique_ptr runQueryImplRemoveAll( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCount( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCountArtists( const std::shared_ptr &query); std::unique_ptr runQueryImplGetArtistsLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCountAlbums( const std::shared_ptr &query); std::unique_ptr runQueryImplGetAlbumsLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplGetLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCount( const std::shared_ptr &query); std::unique_ptr runQueryImplGetLimited( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCount( const std::shared_ptr &query); std::unique_ptr runQueryImplGetByPath( const std::shared_ptr &query); std::unique_ptr runQueryImplRemoveByPath( const std::shared_ptr &query); std::unique_ptr runQueryImplGetCountForPath( const std::shared_ptr &query); std::unique_ptr runQueryImplGetOffsetByPath( const std::shared_ptr &query); MultimediaFilesDB *database = nullptr; }; } // namespace db::multimedia_files