#ifndef CHATSYSTEM_H
#define CHATSYSTEM_H

#include "commonclienthandler.h"
#include <QObject>
#include <Data/typesDataServerClient.h>

class ChatSystem : public QObject
{
    Q_OBJECT
public:
    ChatSystem();
    void initialize(CommonClientHandler *commonClientHandler, DataParser *dataParser, QMap<int, ClientHandler*> *clientsMap);
    bool sendMessage(ClientMessage message);
    //логика хранения отложенных сообщений
    //хендлеры для отправки и приема

    void sendOldMessages(QString id);
private:
    CommonClientHandler *commonClientHandler;
    DataParser *dataParser;
    QMap<int, ClientHandler*> *clientsMap;
    QMap<QString,QQueue<ClientMessage>*> *clientNotSendedMessage;
    bool sendTo(ClientMessage message);
};

#endif // CHATSYSTEM_H
