#ifndef TYPESDATASERVERCLIENT_H
#define TYPESDATASERVERCLIENT_H

#include <QList>
#include <QString>
#include "typeQueryToDB.h"

#define NOTIFY_SERVER_END            "END"
#define NOTIFY_SERVER_BLOCKED   "BLOCKED"
#define SERVER_HELLO                     "NewConnection. I am server LMS!"

enum EStateServer{started, stoped};
enum EStateBlockAutorization{blocked, unblocked};

struct FileData
{
    QString path;
    QString hash;

    bool operator==(const FileData& other)const
    {
        if (this->path== other.path && this->hash == other.hash) return true;
        return false;
    }

    bool operator<(const FileData& data2) const
    {
        return this->hash == "FOLDER" && data2.hash !="FOLDER";
    }

};

struct SAttribute
{
    QString name;
    QString value;

};

struct SXmlAnswerTag
{
    QString elementName;
    QList<SAttribute> attr;
};

enum TypeClientAutorization{
    TYPE_SIMPLE = 0,
    TYPE_GUI = 10
};

class ClientAutorization
{
public:
    QString Login;
    QString Password;
    int NumberOfScreen;
    TypeClientAutorization TypeClient;
};
class ClientDeAutorization
{
public:
    QString Login;
};
/*
enum TypeQueryToDB{
    TYPE_QUERY_GET_ALL_LISTS,
    TYPE_QUERY_NEW_INSTRUCTOR,
    TYPE_QUERY_DEL_INSTRUCTOR,
    TYPE_QUERY_EDIT_INSTRUCTOR,
    TYPE_QUERY_NEW_GROUP,
    TYPE_QUERY_DEL_GROUP,
    TYPE_QUERY_EDIT_GROUP,
    TYPE_QUERY_NEW_TRAINEE,
    TYPE_QUERY_DEL_TRAINEE,
    TYPE_QUERY_EDIT_TRAINEE,
    TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE,
    TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE
};
*/

class ClientQueryToDB{
public:
    TypeQueryToDB typeQuery;
};

class ClientQueryTasksXML
{
public:
    QString Type;
};

class ServerMessage
{
public:
    QString Text;
};

class ClientMessage
{
public:
    QString Text;
};

class ToClientMessage
{
public:
    int id;
    QString Login;
    QString Text;
};

class ServerTask
{
public:
    QString Text;
};

class ServerNotify
{
public:
    QString Code;
};

class ClientNotify
{
public:
    QString Code;
};

class DataInfo{
public:
    QString path;
    quint64 size;
};

#endif // TYPESDATASERVERCLIENT_H
