Teaspeak-Server/server/src/manager/LetterManager.h
2019-10-16 21:11:54 +02:00

45 lines
1.1 KiB
C++

#pragma once
#include <chrono>
#include <Definitions.h>
#include <vector>
namespace ts {
namespace server {
class TSServer;
}
namespace letter {
struct LetterHeader {
LetterId id;
ClientUid sender;
ClientUid receiver;
std::chrono::time_point<std::chrono::system_clock> created;
std::string subject;
bool read;
};
struct Letter : public LetterHeader {
std::string message;
};
class LetterManager {
public:
LetterManager(server::TSServer*);
~LetterManager();
size_t unread_letter_count(const ClientUid&);
std::vector<std::shared_ptr<LetterHeader>> avariableLetters(ClientUid);
std::shared_ptr<Letter> getFullLetter(LetterId);
void updateReadFlag(LetterId, bool);
void deleteLetter(LetterId);
void createLetter(ClientUid sender, ClientUid reciver, std::string subject, std::string message);
private:
server::TSServer* server;
};
}
}