#ifndef __IMAIL__H__ #define __IMAIL__H__ #include #include #include #include "dCommonVars.h" #include "NiQuaternion.h" #include "NiPoint3.h" class IMail { public: struct MailInfo { std::string senderUsername; std::string recipient; std::string subject; std::string body; uint64_t id{}; uint32_t senderId{}; uint32_t receiverId{}; uint64_t timeSent{}; bool wasRead{}; struct { LWOOBJID itemID{}; int32_t itemCount{}; LOT itemLOT{}; LWOOBJID itemSubkey{}; }; }; // Insert a new mail into the database. virtual void InsertNewMail(const MailInfo& mail) = 0; // Get the mail for the given character id. virtual std::vector GetMailForPlayer(const uint32_t characterId, const uint32_t numberOfMail) = 0; // Get the mail for the given mail id. virtual std::optional GetMail(const uint64_t mailId) = 0; // Get the number of unread mail for the given character id. virtual uint32_t GetUnreadMailCount(const uint32_t characterId) = 0; // Mark the given mail as read. virtual void MarkMailRead(const uint64_t mailId) = 0; // Claim the item from the given mail. virtual void ClaimMailItem(const uint64_t mailId) = 0; // Delete the given mail. virtual void DeleteMail(const uint64_t mailId) = 0; }; #endif //!__IMAIL__H__