/* * @file ThreadRecord.hpp * @author Mateusz Piesta (mateusz.piesta@mudita.com) * @date 29.05.19 * @brief * @copyright Copyright (C) 2019 mudita.com * @details */ #ifndef PUREPHONE_THREADRECORD_HPP #define PUREPHONE_THREADRECORD_HPP #include "Record.hpp" #include #include "utf8/UTF8.hpp" #include "../Databases/SmsDB.hpp" #include "../Databases/ContactsDB.hpp" #include "../Common/Common.hpp" struct ThreadRecord{ uint32_t dbID; uint32_t date; uint32_t msgCount; uint32_t msgRead; UTF8 snippet; SMSType type; uint32_t contactID; }; enum class ThreadRecordField{ ContactID, }; class ThreadRecordInterface : public RecordInterface{ public: ThreadRecordInterface(SmsDB* smsDb,ContactsDB* contactsDb); ~ThreadRecordInterface(); bool Add(const ThreadRecord& rec) override final; bool RemoveByID(uint32_t id) override final; bool Update(const ThreadRecord& rec) override final; ThreadRecord GetByID(uint32_t id) override final; uint32_t GetCount() override final; std::unique_ptr> GetLimitOffset(uint32_t offset,uint32_t limit) override final; std::unique_ptr> GetLimitOffsetByField(uint32_t offset,uint32_t limit,ThreadRecordField field, const char* str) override final; private: SmsDB* smsDB; ContactsDB* contactsDB; }; #endif //PUREPHONE_THREADRECORD_HPP