#ifndef COMMONCLIENTHANDLER_H
#define COMMONCLIENTHANDLER_H

#include <QObject>
#include "clienthandler.h"

class ProcessingSystem;
class DataParser;
class Logger;

class CommonClientHandler : public QObject
{
    Q_OBJECT
public:
    explicit CommonClientHandler(QObject *parent = nullptr);
    void initialize(QMap<int, ClientHandler*> *clientsMap,
                    ProcessingSystem *processingSystem,
                    DataParser *dataParser,
                    Logger *logger);

    void sendNewVersionListToAllClient();
    void sendCurrentVersionToAllClient();
    void slot_AuthChanged();
    void slot_sendPacketToAllClients(PacketType packetType);
    //слот обработки сигнала о готовности нового сообщения на отправку клиенту от мессенджера
    void slot_msgToClientFromGUI(QString login, QString text);
    void slot_msgToGUIfromClient(QString login, QString text);
    void slot_sendTaskToClient(QString fullNameClient, QString textTask);
signals:
    void sigSendToLogger(QString text);
private:
    QMap<int, ClientHandler*> *clientsMap;
    ProcessingSystem *processingSystem;
    DataParser *dataParser;
    Logger *logger;

};

#endif // COMMONCLIENTHANDLER_H
