45 lines
1.1 KiB
C++
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;
|
|
};
|
|
}
|
|
} |